übergabe eines Array
-
ich möchte eine Array von int mit der Dimension 2 als Rückgabe Element einer Funktion haben. ich habe mich also für call by pointer entschieden. habe jetzt aber Probleme beim Aufruf der Funktion.
int funktion(int *ptr[3][3]); void main(void) { int array[3][3]; funktion(&array); }
so wie hier zu sehen geht es nicht!
kann mir einer sagen wie es Richtig wehre?
-
Soll das Array in main() oder in funktion() angelegt werden?
Oder willst du in funktion() nur Werte in array ändern?int funktion(int ptr[3][3]); void main(void) { int array[3][3]; funktion(array); }
-
ich möchte das Array in der Funktion ändern.
-
Mal ein Beispiel:
#include <stdio.h> int funktion(int arr[3][3]) { arr[0][1] = 7; return 0; } int main(void) { int i,j, array1[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) array1[i][j] = 0; funktion(array1); printf("%d %d\n", array1[0][0],array1[0][1]); return 0; }
-
Felidae_TWC schrieb:
ich möchte das Array in der Funktion ändern.
In C kann man keine Arrays ändern, niemals und nirgendwo. Man kann den Inhalt des Speicherbereiches, der vom Array definiert wurde ändern, z.B. indem man Arrayelementwerte ändert.