Okay, jetzt weiß ich was du möchtest.

int feld [256]; bedeutet:
feld[0] ist ein integer, feld [1] ...feld[255] alles integer
feld ohne jeden index ist ein Zeiger auf einen Integer. Genauer gesagt ist es der Zeiger auf feld[0], okay?

int mysort(int feld[256])
mysort gibt per Deklaration einen Integer zurück.
return feld;
feld ist aber ein Zeiger. Das geht so nicht.


Was du wirklich vor hast, wird hier klar.
b=mysort(b);
Du möchtest das b innerhalb der Funktion manipuliert wird, sonst nix. Warum übergibst du erst b und schreibst es dann zurück. Besser ist es, der Funktion mitzuteilen wo sie auf b zugreifen kann. Das machst du mittels eines Zeigers.

void mysort (int*);
Bei dieser Deklaration gibt es keinen Rückgabewert. Dh. du schließt sie nur mit return; ab und sie erwartet einen Zeiger als der auf einen Integer verwist als Argument.
void mysort (int* pFeld){
pFeld[0] = 1;
pFeld[1] = 2;
}
So greifst du dann auf die Felder zu.

Gruß

Jens