【发布时间】:2015-12-21 12:38:31
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 20
typedef struct arr {
char name[SIZE];
} arr;
typedef struct tz{
struct arr *next;
} tz;
int main() {
tz *tze;
const char *value[SIZE];
tze = (tz*) malloc(sizeof(tz)*5);
int i;
for(i = 0; i < 5; i++) {
printf("insert value:\n");
scanf("%s", value);
strcpy(tze[i].next->name, value);
}
for(i = 0; i < 5; i++){
printf("output:%s ",tze[i].next->name);
}
return 0;
}
嗨,上面有一个代码示例,这是我的问题。我想通过数组在“名称”字段中输入信息,其中每个单元格“链表”。不幸的是,来源不正确。有什么想法吗?
int main() {
tz *tze;
char *value;
tze = (tz*) malloc(sizeof(tz)*5);
value = (char*) malloc(sizeof(char)*SIZE);
int i;
for(i = 0; i < 5; i++) {
printf("insert value:\n");
fgets(value, SIZE, stdin);
strncpy(tze[i].next->name, value,SIZE);
}
for(i = 0; i < 5; i++){
printf("output:%s ",tze[i].next->name);
}
return 0;
}
我像这样更改了我的代码,但它仍然不起作用。我仍然收到信号错误错误。如果我使用:
strcpy(tze[i].next->name, value[i]);
我得到了一个错误指针,我相信 value[i] 我只指向第一个值单元格。 Insteal with value without [i] im 一般指向整个向量。
【问题讨论】:
-
为什么您认为来源不正确?你的编译器会打印一些错误吗?
-
叹息。什么不正确?它编译吗?你期望什么输出。实际输出是多少?你的意见是什么?
-
1) 您的
next指针均无效。你需要让它们如此。 2) 使用char value[SIZE]; -
使用这个表格是我的第一选择,但没有带来积极的结果。
标签: c struct linked-list