|
1Qter豆
struct student *create(int n){ struct student *pHead,*pNOW,*pNEW; pHead = (struct student *)malloc(sizeof(struct student)); if(pHead == NULL) { printf("applay room false\n"); exit(1);//结束程序 } pHead->next = NULL; char headname[20 = "cll"; strcpy(pHead->name,headname);
pNOW = pHead; int i; for(i = 0;i<n;i++) { pNEW = (struct student *)malloc(sizeof(struct student)); pNEW->next = pNOW->next; printf("put in student [%d] name\n",i+1); scanf("%s",pNEW->name); //输入 // char newName[20];// scanf("%s",newName);// strcpy(pNEW->name,newName); pNOW->next = pNEW; pNOW = pNEW;
} printf(" create list over\n"); for(i = 0;i<=n;i++) { printf("%s\n",(pHead+i)->name);//这个地方想把刚才输入的书出来 } return pHead;}
为什么输出的不是我刚刚输入的字符串?前面变成&(pHead+i)->name),输出不变,,,但是第一个输出的是cll,这个是正确的???难道是我输入错了吗
|
最佳答案
查看完整内容
看见你好像现在一直在Qt里面写C程序,不是不可以,只是想说的是,Qt对C++支持会好一些。或者说,如果不是特别需要,那么,一般在高级程序中,数组、链表等都可以通过容器类来实现,使用容器很方便,不需要操作复杂的结构体或者指针,可以避免很多不必要的麻烦。
还有要说的就是,这里大多探讨的是Qt的问题,所以你发的很多C的问题,可能得不到及时的回答,建议去一些C语言的论坛区发帖讨论。 ...
|