1樓:匿名使用者
haha()為動態函式,在函式呼叫結束之後,會釋放分配的記憶體,也就是說你用p所指向的"haha"在函式結束後會被釋放
2樓:匿名使用者
//如程式,為什麼編譯無錯誤,卻執行不出來//下面程式vc6執行通過
#include
#include
void haha(char * q)
//q = "haha";能執行出來才怪!,q是指標不應再次指向指標p,應把主程式的p定義為陣列,
//即使p在主程式已定義為陣列,也不能直接把"haha"直接賦給q。
//因為只有初始化的情況下,才能直接把字串賦給陣列。不懂的話翻c語言的書去
strcpy(q,"haha");//用strcpy()函式,或者自已寫迴圈處理。
int main()
//char * p;
//haha(p);
//puts(p);
//return 0;
char p[20];//應定義陣列,不應定義指標haha(p);
puts(p);
return 0;
3樓:匿名使用者
錯誤,字串指標未初始化.你就去使用了.這樣會記憶體非法操作.
先給p分配空間或者使用陣列 如char p[100];
然後,haha裡的字串賦值,改為strcpy.
4樓:匿名使用者
#include
void haha(char* &q) //這個地方應該是引用傳值,否則這裡的q是p的一個副本,修改q不會對p產生影響。
int main()
5樓:匿名使用者
c++ 才支援的引用版可能不滿足你要求。我來給你個c版吧。
#include
void haha(char ** q) // 需要傳 main 裡 *p 的指標過來
int main()
c語言問題!請高手解答!謝謝,C語言問題!請高手解答!謝謝
你分析程式,首先看main函式,輸入兩個數字 進入for迴圈,迴圈次數是你輸入兩個數字的差 進入一個判斷就是90 120之前的i是否等於 rsum i 的返回值 那麼看rsum函式 sum 0,進入while迴圈 sum sum 10 j 10 sum是0,是代表的取餘,就是除法裡的餘數,比較相近 ...
C語言問題,求大神解答
大致看了一下,覺得總體思路可行,但具體操作就有問題了。一是feof這個函式的引用就有問題 這個函式不讀檔案只檢查剛剛發生的讀操作是否賣到或越過了檔案結束符 中第一次進入while時還沒有發生讀動作,無法確定的判斷會把錯誤依次轉嫁到檔案最後。二是用fgets這個函式讀檔案是由n或 n 控制結束的,中間...
求大神解答c語言題目,求大神解答C語言題目
include 商不能超過最大的long型數,小數部分最後一位四捨五入太難了,希望能給你參考 void func double m,double n,double k int main func m,n,k include void func int m,int n,int k int main f...