C程式在返回時出問題了

2022-08-02 00:05:21 字數 1072 閱讀 4147

1樓:風若遠去何人留

區域性變數陣列不能作為指標返回

因為當函式退出後 區域性變數會被釋放 空間用作其他用處這樣在主調函式中再去訪問該段空間就會出現不可預知結果可以改成動態分配b(malloc方式) 然後返回要記得在主調函式使用後 對b進行free

**修改如下

#include

#include

int *matrix(int (*pa)[5]);

void main()

printf("\n");

}pd=matrix(a);

printf("the matrix returned is:\n");

for(i=0;i<25;i++)

free(pd);

}int *matrix(int (*pa)[5])printf("the matrix returned is:\n");

for(i=0;i<25;i++)

return(b);}

2樓:風雷九州

int *matrix(int (*pa)[5])函式返回的是區域性陣列b[25],函式結束之後,區域性變數就會被銷燬,main函式接收到的返回值沒有任何意義了,當然列印亂碼了。修改方法就是將int *matrix(int (*pa)[5])函式的陣列b改成全域性變數。

#include

#include

int *matrix(int (*pa)[5]);

int b[25];  //改成全域性變數

void main()

printf("\n");

}pd=matrix(a);

printf("the matrix returned is:\n");

for(i=0;i<25;i++)

}int *matrix(int (*pa)[5])printf("the matrix returned is:\n");

for(i=0;i<25;i++)

return(b);}

3樓:不能說的_祕密

返回的只能是一個值,哪有像你這樣把陣列返回的。。。

C 函式返回引用問題,c 函式返回引用問題

include using namespace std int a int index int i 這裡需要申明一下 否則main不能呼叫index函式 int main index 2 25 cout 返回引用 1 主函式main的返回值 這裡提及一點,返回0表示程式執行成功。2 返回非引用型別 ...

c程式1設計程式,輸入123,返回1 2 3也就是數的和6,輸入 123也還是數的和,是

1 設計一個程式,輸入123,返回1 2 3也就是三個數的和6,輸入 123 也還是三個數的和,是6.include int add int n return sum int main void 2 設計程式,輸入123 返回321。輸入 123,返回321 include int reverse ...

我是不是在交際時出問題了

想與不想是心中有,不是隻掛在嘴上的,也許他是一個花心的男人。這樣的男人是不是隨意停流的,必竟你的好友還喜歡著他,對他少稍微一點兒,不要他打你就接,幾個 才接一次,他會知趣的!這要看你自己了。人都是自私的嘛,特別是對愛情,所以,你要說這句話是對的話,那你就跟那位男生咯。要不嘛,如果你是重義氣的女生,那...