Wird die Zuweisung mit sizeof durchgeführt, um eine falsche Größe für Strukturzeiger zu erhalten?
Verwende valgrind um dies zu lesen. Ich bekomme: Ungültiges Schreiben / Lesen von Größe 4
struct Person{
char* name;
int age;
};
struct Person* create_person(char *name, int age)
{
struct Person* me = (struct Person*)malloc(sizeof(struct Person*));
assert(me!= NULL); //make sure that the statement is not null
me->name = name;
me->age = age;
return me;
}
Mit diesem bekam sauberes Protokoll mit Valgrind
struct Person{
char* name;
int age;
};
struct Person* create_person(char *name, int age)
{
struct Person* me = (struct Person*)malloc(sizeof(struct Person*)+4);
assert(me!= NULL); //make sure that the statement is not null
me->name = name;
me->age = age;
return me;
}
Warum sollte ich explizit @ setzsizeof(struct+intSize)
um diesen Fehler zu vermeiden?sizeof
nicht die ganze Größe einer Struktur bekommen?