PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c mehrdimensionales arrray an funktion übergeben



barton4
20-06-2006, 11:20
ich habe im main programm folgende mehrdimensionales aaray

void changenames(char names *names[][])
{

}

int main()
{
...
char names[256][256];
changenames(names...)
...
}

und zwar will ich das mehrdimensionale array an die funktion übergebene, aber als zeiger so das die änderung in der funktion auch auserhalb wirksam werden.

peschmae
20-06-2006, 12:03
Eine Möglichkeit wäre z.B.



void changenames(char names[256][])
{

}


Ist natürlich immer möglich dass das nicht genau passt - hab das jetzt gerade nicht getestet (gerade kein C-Compiler hier...)

Um Pointer/Nichtpointer musst du dir da eigentlich keine Sorgen machen - das Array wird sowieso nicht by value übergeben sondern nur die Adresse des ersten Elements - auch wenn dus mit char names[][] angibst

MfG Peschmä

barton4
20-06-2006, 17:01
danke ich probiere es mal aus,

barton4
20-06-2006, 17:13
mhhh geht nicht so ganz



pm.c: In function `main':
pm.c:47: error: incompatible type for argument 3 of `eval_argus'

bei übergeben meckert er herum

peschmae
20-06-2006, 18:04
Geht ohne Warnung bei mir:



void changenames(char names[][256])
{

}

int main()
{
char names[256][256];
changenames(names);

return 0;
}


funktioniert so natürlich nur wenn du vorher schon fix weisst wie gross das Array ist und das immer gleich gross ist.

Wenn du das nicht weisst artet das ganze typmässig ein bisschen aus, das hab ich jetzt auch nicht mehr genau im Kopf.

Auf jeden Fall ist bei so Sachen das C-FAQ immer eine gute Sache: http://c-faq.com/

MfG Peschmä