【发布时间】:2013-09-29 09:11:49
【问题描述】:
我从这个站点阅读了代码:http://www.codeproject.com/Articles/24684/How-to-create-Linked-list-using-C-C,但它给了我分段错误,我不太明白。
*我将它修改为我的结构
struct Node
{
int type;
char cmd[256];
struct Node *next;
};
struct Node *head = NULL;
void insert(int val, char arr[])
{
struct Node *temp1 = (struct Node*)malloc(sizeof(struct Node));
struct Node *temp2 = (struct Node*)malloc(sizeof(struct Node));
temp1 = head;
while(temp1->next != NULL)
temp1 = temp1->next;
temp2->type = val;
strcpy(temp2->cmd, arr);
temp2->next = NULL;
temp1->next = temp2;
}
这段代码有什么问题?
好的,这个问题解决了。谢谢Guyz'^'!您是否知道如何将字符 " (ASCII 34) 放入 printf 字符串中?(例如,如果我执行 printf("Print this "sentence""); 它会给我句子错误,cut I cast another set of “”在一个“”中。谢谢一堆。
【问题讨论】:
-
哪一行导致了段错误?
-
你不需要为
temp1分配内存,否则你会发生内存泄漏。struct Node *temp1 = head很好。 -
你能告诉我们
struct Node的内容吗? (什么是cmd成员) -
我只是看了链接页面的内容,真的很糟糕。不要使用它。
-
head在哪里定义?你在任何地方初始化它吗?
标签: c insert linked-list