读书人

关于指针初始化的有关问题

发布时间: 2012-03-16 16:34:56 作者: rapoo

关于指针初始化的问题?
#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;} //是你个人理解方面的问题,你理解有误罢了。 

读书人网 >C语言

热点推荐