Ich habe eine struct
definiert:Dynamisch Zeiger falsche Größe auf int geben
struct Query {
int *pages;
int currentpage;
};
struct Query *new = malloc(sizeof(struct Query));
new->pages = malloc(sizeof(int) * 4);
Ich habe dann die Größe von new->pages
, um sicherzustellen, dass die Größe betrug 4 by doing:
int size = sizeof(new->pages)/sizeof(new->pages[0]);
jedoch size
wird 2
im Gegensatz zu 4
zurückgegeben.
Würde jemand wissen, was ich falsch machen könnte?
Danke für Ihre Hilfe.
'sizeof (neuen-> Seiten)/sizeof (neuen-> Seiten [0])' 'gemeint sizeof (int *)/sizeof (int)' ' – BLUEPIXY
pages' ein' pointer' ist, nicht ein 'Array'. Sie sagen: Geben Sie mir die Größe eines Zeigers geteilt durch die Größe eines 'int' (was in den meisten Systemen 8/4 = 2 ist). – nicola
Ich würde vorschlagen, dass Sie dritte Elementvariable in Ihrer Struktur hinzufügen, wo Sie die Elementanzahl speichern. – user694733