Ich versuche, ein Array von Strukturen dynamisch zu erstellen. Obwohl mit kleinen Größen scheint gut zu funktionieren, aber das Programm bricht später (Segmentierung Fehler). Wenn es eine große ipt_size hat, zerbricht es sehr schnell mit Nosense-Zahlen, also nehme ich an, dass das Problem in der Art ist, wie ich mein Array zuteile.Array von Strukturen dynamisch mit malloc zuweisen
int create_ipt(int ipt_size,frame **ipt){
int i;
*ipt=malloc(ipt_size*sizeof(frame*));
for(i=0;i<ipt_size;i++){
ipt[i]=malloc(sizeof(frame));
if (ipt[i]==NULL) return 1; //error
ipt[i]->empty=1;
}
return 0; //success
}//create page table
Ich rufe die Funktion mit
frame *ipt;
create_ipt(ipt_size,&ipt);
Wissen Sie, was geschieht? Rahmen 3 ints innen
'* ipt = malloc (ipt_size * sizeof (Rahmen *));' -> '* ipt = mallo c (ipt_size * sizeof (frame)); '..' if (* ipt == NULL) gebe 1 zurück; für (i = 0; i
BLUEPIXY
Danke Mann. Das war der Weg. füge deinen Kommentar als Antwort hinzu, um es grün zu machen :) – panos