糾錯 c語言 函式返回指標問題

2021-12-27 17:34:06 字數 822 閱讀 4187

1樓:

解釋如下:

因為q宣告的是一個區域性變數,所以在函式呼叫結束後它所開闢的記憶體空間就會被系統收回

它裡面的內容也就銷燬了,因此它輸出的是一段亂碼!

改下程式

#include

#include

#include

char *t;

char * copy(char *p,int m)void main()

2樓:歪歪閒置

輸出的是什麼?一起貼上看起來快一點

3樓:匿名使用者

一開始你宣告瞭一個指標char* t, copy()之心完以後返回t,然而t指向的char q[80]是一個臨時變數,copy()執行完以後系統就把它釋放了。

4樓:匿名使用者

#include

#include

char *t;

char * copy(char *p,int m)void main()

5樓:

原因:在copy函式裡,j 沒有賦初值,導致了陣列越界,程式編譯不會錯,但不會得到正確值。

解決方法:int i,j = 0;

這樣還不夠,在你定義字元陣列時,最好給它一個初始化,不然裡面全是亂七八糟的東西。

不信?那你執行下面一個**:

#include

int main()

為了避免錯誤,你應該這樣:

for(i = 0; i < 80; i++)q[i] = '\0';

這樣就不會錯了。

c語言函式返回值,c語言的函式返回值?

這個跟庫函式的定義有關。還有就是編譯器的差異。有些編譯器預設是非0為真,有些非 1為真。建議不要使用這麼簡單粗暴的辦法判斷。請使用c提供的標準巨集判斷。在 學的。呃。自己寫 寫多了自然就知道了 根據你的程式來看應該是一個void型,不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的 而如果...

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語言指標問題,C語言指標問題

include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...