关于c语言链表问题 50

关于c语言链表问题关于c语言链表问题。我创建了个链表嘛,然后有头节点,然后我想测试下是否成功,发现这个链表中结合体的一个数组元素没法赋值,内存报错。我想问下,为什么会出现... 关于c语言链表问题关于c语言链表问题。我创建了个 链表嘛,然后有头节点,然后我想测试下是否成功,发现这个链表中结合体的一个数组元素没法赋值,内存报错。我想问下,为什么会出现这种情况?那个地方错了,该怎么改啊? 谢谢大神相助! 展开
 我来答
xoaxa
2017-03-26 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3439万
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct node {
char num[15];
struct node *next;
}*List,NODE,*pNode;

List InitList() {
pNode head = (pNode)malloc(sizeof(NODE));
if(head == NULL) return NULL;
head->next = NULL;
head->num[0] = 0;
return head;
}

int InsertNode(List head,char num[]) {//增序插入结点
if(head == NULL) return 0;
pNode p = head;
pNode q = (pNode)malloc(sizeof(NODE));
strcpy(q->num,num);
int res;
while(p->next) {
res = strcmp(num,p->next->num);
if(res == 0) return 0;
else if(res < 0) {
q->next = p->next;
p->next = q;
return 1;
}
p = p->next;
}
p->next = q;
q->next = NULL;
return 1;
}

void show(List head) {
if(head == NULL) return;
pNode p = head->next;
while(p) {
printf("%s\n",p->num);
p = p->next;
}
}

int main(void) {
List head = InitList();
char s[8][10] = {"int","char","double","float","void","continue","return","sizeof"};
int i,n = 8;
printf("未序前:\n");
for(i = 0;i < n;++i) {
printf("%s\n",s[i]);
InsertNode(head,s[i]);
}
printf("增序后:\n");
show(head);
return 0;
}
更多追问追答
追问
有点看不懂,我就想知道 怎么复制啊,你可以用文字阐述下原因嘛?
有点看不懂,我就想知道 怎么赋值啊,你可以用文字阐述下原因嘛?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式