[gelöst] Anfängerfrage, Pointer zu Pointer zu Array



  • Guten Abend.
    Ich sitze an einem kleinen Programm das einen Pointer haben soll, der auf einen anderen zeigt und dieser soll auf das erste Array Element zeigen :). Wenn ich nur einen Pointer benutze und ihn auf das Array zeigen lasse, funktioniert alles wunderbar. Nur wenn ich dann einen Zweiten Pointer auf den ersten zeigen lasse, bekomme ich beim compilieren die Fehlermeldung: "initialization from incompatible pointer type". Ich habe schon einiges rumprobiert und bekomme es einfach nicht hin. Vielleicht sieht von euch jemand den Fehler 😃

    Dabei geht es um folgenden Teil:

    int array[10] = {5,10,30,0};
    
    int *pointer = array;
    int **p_pointer = pointer;	
    	;
    printf("Pointer 2 ist: %i",**(p_pointer+2));
    
    average(pointer,4);
    

    Viele Grüße
    Fu2y



  • int** ist ein anderer Typ als int*. Du müsstest schon die Adresse von pointer nehmen:

    int** p_pointer = &pointer;
    


  • Hey vielen Dank, das habe ich auch schon probiert.

    Leider bekomme ich jetzt einen Segmentation Fault. Obowhl das eigentlich stimmen sollte. 🙂

    Die Funktion sieht so aus:

    int average_value;
    
    	//Funktion um Durchschnitt eines Arrays zu berechnen
    	int average(int *arrayPointer, unsigned int size)
    	{
    		average_value = *arrayPointer;
    
    		for(unsigned int i=1; i<=size; i++)
    		{ 
    			average_value = average_value + *(arrayPointer+i);
    		}
    
    		//Ausgabe
    		printf("\nSum: %i\n", average_value);
    		printf("Number of Elements: %i\n", size);
    
    		//Berechnung des Durchschnitts
    		average_value = average_value / size;
    		printf("Average: %i\n\n", average_value);
    		return average_value;		
    	}
    

    Aber daran sollte es eigentlich nicht liegen



  • <= in < umändern: Arraylänge ist Arraylänge-1



  • Wunderbar jetzt gehts :D. Das nächste mal schaue ich genauer hin. Vielen Dank 👍


Anmelden zum Antworten