-3
#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]);
我得到一個錯誤的指針,我相信有值[I] IM指向只有價值firts細胞。在沒有[i] im的情況下帶有價值的Insteal通常指向整個向量。
爲什麼你認爲源是不正確的?你的編譯器是否打印出錯誤? –
[請參閱此討論關於爲什麼不在'C'中投射'malloc()'和家族的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
感嘆。什麼是不正確的?它是否編譯?你期望什麼輸出。實際產出是多少?你的意見是什麼? –