Es gibt ein paar Probleme mit Ihrem Code.
Die Faust ist dies:
modify();
Sie hier Aufruf die Funktion, bevor Sie die Compiler gesagt haben, dass es existiert. Anscheinend sagt dein Compiler, dass es in Ordnung ist, was es wirklich nicht ist. Was wahrscheinlich passiert, ist, dass der Compiler (fantastisches Wort für "Raten") folgert, dass die Funktion keine Argumente annimmt und nichts zurückgibt. I.e. sehen, dass die Erklärung wie
void modify(void);
Diese „Erraten“ wurde in der älteren Standards von C erlaubt, aber seit dem C99-Standard wurde diese implizite Deklaration entfernt und würden Sie einen Fehler in einem konformen Compiler. später
Ein wenig tun Sie
modify(array);
die wiederum die Funktion aufruft, aber da der Compiler denkt, dass die Funktion keine Argumente nehmen, niemand wird tatsächlich weitergegeben werden. Was zum schlimmsten Problem von allen führt: In der tatsächlichen modify
Funktion verwenden Sie ein Argument, aber da keine tatsächlich übergeben wird, wird die Variable nicht initialisiert und Sie haben undefined Verhalten versuchen, diesen Zeiger zu dereferenzieren (Arrays verfällt zu Zeigern, wenn als Argumente an Funktionen übergeben) und Sie werden höchstwahrscheinlich Ihren Absturz dort haben.
Es gibt auch die von der Funktion zurückkehrt:
return array[j];
Hier ist der Wert von j
wird 10
sein, die außerhalb der Grenzen für das Array ist, dass Sie passieren (na ja, versuchen passieren) an die Funktion.
Um das Problem zu lösen, fügen Sie die Funktion Prototyp Deklaration irgendwo vor dem Aufruf der Funktion, ein üblicher Ort wäre im globalen Bereich kurz vor der main
Funktion. So etwas wie
...
int modify(int *array);
int main(void)
{
...
}
...
und befestigen Sie die return
Anweisung in der Funktion.
C++ erlaubt keine Funktionen, ohne einen Rückgabetyp anzugeben. Ignorieren Conio, [siehe hier] (http://coliru.stacked-crooked.com/a/7e275a22f1a13172) für einige Fehler, die Ihr Compiler * Ihnen * geben sollte. (Bearbeiten) Was Ihr Problem angeht, wäre ein Debugger eine große Hilfe. Sie können herausfinden, wo es abstürzt und gehen Schritt für Schritt zu diesem Punkt, beobachten Sie variable Werte und verstehen Sie, warum der Absturz auftritt. – chris
dann bitte helfen Sie mir ... können Sie meinen Code korrigieren ..? –
Das sieht wie C-Code aus. 'modify' hat einen impliziten' int' Rückgabewert. Gab es eine Compiler-Warnung, die Sie ignoriert haben? – jxh