#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;
}
嗨,上面有一个代码示例,这是我的问题。我想通过一个数组在字段'name'中输入信息,其中每个单元格的链表。不幸的是,来源不正确。有些想法?
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;
}
我改变了我的代码,但它仍然无法正常工作。我仍然得到一个sigment错误错误。如果我使用:
strcpy(tze[i].next->name, value[i]);
我有一个错误指针,我相信值[i]我只指向有价值的第一个单元格。在没有[i] im指向整个载体的情况下,有价值的信息。