关于指针初始化的问题?
#include"stdio.h"
typedef struct node{
int data;
struct node *next;
}Node;
void initList(Node *p)
{
p=(struct node *)malloc(sizeof(struct node));
p->data=3;
}
main()
{
Node *p;
initList(p);
printf("%d",p->data);
}
这个程序,为什么最后输出不是3?而是一个随机数?
还有就是在TC环境下编写C语言程序,有时候并不需要给指针赋初值但是还是可以照常运行,在c++里面不行,这是TC编译环境自身的原因吗?
[解决办法]
- C/C++ code
#include<stdio.h>typedef struct node{int data;struct node *next;}Node;void initList(Node **p){ *p=(struct node *)malloc(sizeof(struct node)); (*p)->data=3;}int main(){Node *p;initList(&p);printf("%d",p->data);return 0;} //是你个人理解方面的问题,你理解有误罢了。