so habe ich Probleme, dieses Testprogramm zu arbeiten. Also ist es mein Ziel, ein 3D-Array in meiner Hauptfunktion zu erstellen und zu initialisieren, und dann einen Zeiger auf dieses Array zu erstellen. Danach versuche ich, den Zeiger an eine Funktion zu übergeben und dann die Elemente im Array auszudrucken, damit ich sehen kann, dass es funktioniert. Mein Problem tritt auf, wenn ich versuche, das Zeigerfeld tho zu übergeben. Kann irgendjemand von euch sehen, dass ich falsch liege?übergibt ein 3D-Zeiger-Array an eine Funktion
#include <stdio.h>
//declare test function
void test (int*);
int main(){
//declare array and pointer
int array[2][3][2];
int (*p)[2][3][2] = &array;
int i,j,k;
//initialize array
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
for(k = 0; k < 2; k++){
array[i][j][k] = 0;
}
}
}
//print array
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
for(k = 0; k < 2; k++){
printf("%d\n", array[i][j][k]);
}
}
}
printf("----------------------------\n\n");
//pass pointer array into test function
test(p);
}
void test(int (*array2)[2][3][2]){
int i, j, k;
//run thru each element in the pointer array and print
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
for(k = 0; k < 2; k++){
printf("%d\n", array2[i][j][k]);
}
}
}
}
'Leere Test (int array2 [2] [3] [2])' und Dump die 'P' Sache von' Test (Array) aufrufen; 'und Veränderung der Funktionsprototyp, der seiner Implementierung entspricht. –
Ich kann das ja, aber es wird nicht einen Zeiger des Arrays senden. Ich versuche herauszufinden, wie dies zu tun, so dass ich später das Array in einer Funktion durch einen Zeiger ändern kann – cooldude22
Das Array übergeben zerfällt zu einem Zeiger. Die Funktionsdefinition gibt an, wie sie zu verwenden ist. –