69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#define m 3
#define n 4
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*Linklist;//节点类型和指向结构的指针类型
void CreatlistF(Linklist *L);
void main ()
{
Linklist L1;
// Linklist p;//等价于Lnode *p;
//p=&L;
CreatlistF(&L1);
printf("\n");
}
void CreatlistF(Linklist *L)
{
*L=(Linklist)malloc(sizeof(Lnode));
printf("\n");
}
void change(int **p);
void main()
{
int c=1;
int *a ;
a=&c;
change(&a);
printf("%d",*a);
}
void change(int **p)
{
**p=(int)malloc(sizeof(int));
}
1、这段里面,按照我正常的理解的话,内存分配结束的话,p存储的值应该改变了,这个时候我想的是因为p存的是a自身的地址,所以等价于a自身的地址改变了;而实际调试中发现,a自身以及它存储的值都没有变。好奇怪,有什么通俗的解释吗?