dies ist mein Code:initialisieren Werte von dynamischen Arrays in einer Funktion (Programmiersprache C)
void init_array(int** array) {
*array = (int*) malloc(3 * sizeof(int));
/* ???? **(array+2) = 666; */
return;
}
void init(int* array, int* length) {
*length = 3;
*(array+0) = 0;
*(array+1) = 1;
*(array+2) = 2;
return;
}
int main(void) {
/* Variables */
int array_length;
int* array;
/* Initialize */
init_array(&array);
init(array, &array_length);
free(array);
return 0;
}
Meine Frage ist: Wie kann ich Wert des Arrays in einer Funktion init_array initialisieren().
Ich habe Dinge versucht, wie zum Beispiel:
**(array+2) = 666;
*(*(array+2)) = 666;
*array[2] = 666;
**array[2] = 666;
Wenn ich verwenden Bleistift und Papier, das ich führen kam, dass **(array+2)
funktionieren soll aber es gibt mir eine Segmentierung f ault.
Ich würde Ihre Antwort schätzen, weil ich verwirrt bin, wie Zeiger in C tatsächlich arbeiten.
versuchen Sie '(* Array) [2] = 666;' und kompilieren Sie mit allen Warnungen auf. –
Ich bin vertraut mit C++, aber ich brauche Sie den "new" -Operator oder was auch immer zu einem Objekt zu deklarieren und dann die Werte in der angegebenen Adresse zu erstellen. – pandoragami
gibt es keine neuen in C. –