Ich habe die folgende Struktur und Funktion, die Dinge auf die Struktur fügt hinzu:Strukturen mit Streichern und Eingang
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;
}
ich habe Eingang, den es in der folgenden Hauptdatei nehmen:
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
ich nicht weiß warum, aber wenn ein Name eingegeben wird, wird es zu readin
hinzugefügt, aber wenn ich einen anderen Namen eingabe, haben alle Namen in diesen neuen Namen
zum Beispiel:
input:
bob 10
readin = 10 bob NULL
jill 20
readin = 20 jill 10 jill NULL
Ich weiß nicht, warum Bob verschwindet ... irgendeinen Grund, warum es das tut?
Ich gehe mit dem Ändern von 'char * name' zu' char name [1] 'in der Struktur im Erhalten eines Compilerfehlers in meiner Funktion add 'inkompatible Typen beim Zuweisen zum Typ' char [1] 'vom Typ' char * "... wo genau würde ich 'strlen (name)' hinzufügen? – Thatdude1
Ich habe etwas mehr Details hinzugefügt. –
ahhh vielen Dank James! :) – Thatdude1