ü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.


Anmelden zum Antworten