Ich codiere in C.Wie füge ich int zu einem int ** hinzu?
Ich erhalte folgende Variable als Argument int** list
.
Ich Zuweisung des Speichers wie folgt aus:
list = (int **)malloc(sizeof(int) * numberOfItems);
ich durch eine andere Liste bin Looping und ich möchte eine ganze Zahl auf die list
Variable hinzuzufügen. Hier ist mein Code:
*list[i] = i;
Ich erhalte die folgende Fehlermeldung:
[1] 18404 segmentation fault program
Was habe ich falsch gemacht?
'Liste' ist ein 2D-Array. Sie ordnen Speicher nicht richtig zu. –
Zum @ FiddlingBits Kommentar hinzufügen: siehe das Beispiel http://StackOverflow.com/a/1970774 Sie haben übersehen, dass '**' auf Zeiger zeigt, nicht auf 'int', also auf' sizeof * '. Auch die Schleife. –
@FiddlingBits: 'int **' ist ** nicht ** ein 2D-Array und kann nicht als ein verwendet werden! Ein Zeiger, der für ein 2D-Array verwendet werden kann, ist 'int (*) [COLS]' – Olaf