1
我有以下的结构和功能,增加东西向结构:结构用绳子和输入
struct scoreentry_node {
struct scoreentry_node *next;
int score;
char* name;
}
;
typedef struct scoreentry_node *score_entry;
score_entry add(int in, char* n, score_entry en) {
score_entry r = malloc(sizeof(struct scoreentry_node));
r->score = in;
r->name = n;
r->next = en;
return r;
}
我有把它在以下主要文件输入:
int score;
char name[];
int main(void) {
score_entry readin = NULL;
while(1)
{
scanf("%s%d", name, &score);
readin = add(score, name, readin);
// blah blah
我不知道为什么,但在输入它被添加到readin
一个名字,但是当我输入另一名readin
所有名称有这个新名字
例如:
input:
bob 10
readin = 10 bob NULL
jill 20
readin = 20 jill 10 jill NULL
我不知道bob为什么会消失......任何理由为什么会这样做?
即时通过将'char * name'更改为'char name [1]'在struct im中获取编译器错误在我的函数中添加'不兼容的类型'从char *类型分配类型'char [1]'时' ''...我会在哪里添加'strlen(name)'? – Thatdude1 2012-03-28 23:24:34
我增加了一些细节。 – 2012-03-28 23:27:00
ahhh非常感谢詹姆斯! :) – Thatdude1 2012-03-28 23:29:41