Langage C: comment écrire une fonction pour changer la valeur du paramètre de pointeur passé

 #include<stdio.h>
 int source =1;
 int* cope_adress(int *a)
 {
    
    
    a=&source;
 }
 int main()
 {
    
    
     int b=2;
     int *purposes;
     printf("source  address  is  %p\n",&source);
     purposes=&b;
     cope_adress(purposes);
     printf("cope_adress  is  %p\n",purposes);
 
 }
*************************************
*************************************
book@xxx:~/work$ g++ myname.c 
book@xxx:~/work$ ./a.out
source  address  is  0x601040
cope_adress  is  0x7ffdad9a7b7c
 #include<stdio.h>
 int source =1; 
 int* cope_adress(int **a)
 {
    
    
    *a=&source;
 }
 int main()
 {
    
    
     int b=2;
     int **purposes;
     printf("source  address  is  %p\n",&source);
     int *myb=&b;
     purposes=&myb;
     cope_adress(purposes);
     printf("cope_adress  is  %p\n",*purposes);
 
 }
*************************************
*************************************
book@xxx:~/work$ gcc 1.c
book@xxx:~/work$ ./a.out
source  address  is  0x601040
cope_adress  is  0x601040

Il semble que seul le paramètre de fonction est l'adresse de la variable utilisée dans le corps de la fonction peut être assignée avec succès.

Je suppose que tu aimes

Origine blog.csdn.net/aningxiaoxixi/article/details/113576606
conseillé
Classement