7 Stimmen

Übergabe von Zeigern auf Arrays in C

Ich habe also einen Code, der wie folgt aussieht:

int a[10];
a = arrayGen(a,9);

und die arrayGen-Funktion sieht wie folgt aus:

int* arrayGen(int arrAddr[], int maxNum)
{
    int counter=0;
    while(arrAddr[counter] != '\0') {
        arrAddr[counter] = gen(maxNum);
        counter++;
    }
    return arrAddr;
}

Im Moment sagt mir der Compiler "warning: passing argument 1 of 'arrayGen' makes integer from pointer without a cast".

Mein Denken ist, dass ich 'a', einen Zeiger auf a[0] übergeben, dann, da das Array bereits erstellt wird, kann ich nur in Werte für a[n] füllen, bis ich a[n] == ' \0 '. Ich denke, mein Fehler ist, dass arrayGen geschrieben wurde, um ein Array aufzunehmen, nicht einen Zeiger auf eines. Wenn das wahr ist, bin ich nicht sicher, wie ich vorgehen soll, schreibe ich Werte an Adressen, bis der Inhalt einer Adresse ' \0 '?

0voto

jeffD Punkte 1222

Die Art und Weise, wie Sie es verwenden arrayGen() muss nicht einen Wert zurückgeben. Sie müssen auch ' \0 ' im letzten Element nicht automatisch, oder übergeben Sie den Index des letzten zu füllenden Elements.

0voto

Tim D Punkte 31

@jeffD Die Übergabe des Indexes wäre die bevorzugte Methode, da es keine Garantie gibt, dass man nicht auf andere ' \0 vor dem letzten (bei mir war es so, als ich es getestet habe).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X