Zitat(marco @ 15 Apr 2008, 18:15)
CODE
int* do_something(int* N, int k){
N[0]=k;
N[1]=k+1;
return N;
}
int main(void){
int test[2], N[2];
int k = 1;
N[0]=0;
N[1]=1;
test = do_something(N,k);
}

das trifft das, was du machen wolltest am ehesten: das N auf der rechten Seite der Zuweisung ist nur da, damit der erste Array überhaupt nen Sinn hat

CODE
void do_something(int N[], int ret[], int k)
{
ret[0]=N[0] + k;
ret[1]=N[1] + k+1;
}
int main(void){
int test[2], N[2];
int k = 1;
N[0]=0;
N[1]=1;
do_something(N, test,k);
}
der Fehler trat übrigens auf, weil du nen prnzipiell möglichen TypeCast vergessen hattest. Ist aber nicht so schlimm, es wär auch so Krachen gegangen, weil du ne Referenz auf den Stack geändert hättest mit der Zuweisung des anderen Arrays, das die Funktion zurückgegeben hat.
Dieser Beitrag wurde von stth: 16 Apr 2008, 17:16 bearbeitet