zugeordnet habe ich eine Lücke Funktionfreien Speicher außerhalb einer Leere Funktion, wo es
void foo(int *ptr) {
//trying to allocate memory to hold 5 ints
ptr = malloc(sizeof(int)*5):
//I loop ptr and assign each with a value i =0 to 4;
}
In der Hauptfunktion Ich habe diese Zeilen
int main() {
int *num;
//I called the function
foo(&(num));
free(num);
return 1;
}
ich munmap_chunk() ungültige Zeigerfehler. Ich habe versucht, mehr Informationen einzubauen, aber ich konnte das nicht herausfinden. Ich weiß, dass es grundlegend für diejenigen sein wird, die in c arbeiten. Ich dachte, ich gehe durch Verweis und es sollte funktionieren, aber es ist nicht. Ich bin neu in C und bisher hatte ich Kopfschmerzen.
Was Sie an 'foo()' ('int **') übergeben und was der Typ des Arguments, das 'foo()' ('int *') erwartet, stimmt nicht überein. Haben Sie keine Warnmeldungen von Ihrem Compiler erhalten? Sie wollten wahrscheinlich 'void foo (int ** ptr) verwenden {* ptr = malloc (...); ...} ' –
@ P.P Wenn Sie Hauptfunktion schauen, übergab ich Zeiger, eine Adresse, die auf einen int zeigt – user1986244
@ user1986244 Tatsächlich übergaben Sie die Adresse eines Zeigers. Ein Zeiger auf einen Zeiger. 'foo()' sollte ein 'int **' erhalten. – itsme86