0
這裏是一個是給分段錯誤使用函數的代碼有什麼錯誤?
#include<stdio.h>
void fun();
int main() {
fun();
return 0;
}
void fun() {
int i;
for (i=0;i <4;i++) {
fun();
printf ("%d",i);
}
}
這裏是一個是給分段錯誤使用函數的代碼有什麼錯誤?
#include<stdio.h>
void fun();
int main() {
fun();
return 0;
}
void fun() {
int i;
for (i=0;i <4;i++) {
fun();
printf ("%d",i);
}
}
在下面的代碼
void fun() {
int i;
for (i=0;i<4;i++) {
fun();
printf ("%d",i);
}
}
你正在做一個無限循環的示例代碼。函數fun()
自己調用,遞歸沒有退出條件。所以最終功能堆棧將會耗盡,你會得到分段錯誤。
這是因爲您正在進入導致堆棧溢出的無限遞歸。你必須爲你的遞歸函數添加一個基本情況才能退出。
爲什麼遞歸調用'fun()'如果它什麼都不返回? – Mark
問題是這個網站的名稱:)。你有不定的遞歸,導致堆棧溢出。 –
C!= C++。使用您實際使用的語言進行標記。也就是說,它看起來像你使用C,因爲你包含'stdio.h'。 – tambre