我給字串初始化為0為null他都是不輸出
不初始化就亂碼
為什么啊求解答

uj5u.com熱心網友回復:
mian函式里已經定義了一個結構體物件,系統已經開辟了記憶體,你呼叫初始化函式,你使用的是傳參考,所以函式里面處理的已經是你創建的物件的地址,就不需要在malloc了,你再使用malloc使得你開辟后的地址,被你malloc的地址覆寫了,你輸入的資料再你的malloc的地址種,而main中的結構體并沒有做任何操作,仍然是空的!去掉malloc那句試試!uj5u.com熱心網友回復:
關鍵是你在函式里面改了PT, 但是你帶不出來函式, 它只在函式體內有效傳參永遠傳遞的是值,而不是變數本身
雖然, 你把main里面變數的地址傳遞進去了, 但是你改不變數本身的地址
函式里面那個PT僅僅是個臨時變數, 和main的PT之間一毛錢關系都沒有
回到主函式,PT還是原來的PT,根本就沒有變化
相當于你在函式體內申請了一個新的記憶體,然后改了那個記憶體里面的資料
出了函式回到主函式,那個記憶體地址沒有帶回來, 不知道扔哪兒去了, 然后還用原來的PT里面的資料輸出, 所以就沒有所以了
uj5u.com熱心網友回復:
我的C語言老師教我們“傳值”、“傳址”。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111546.html
標籤:C語言
上一篇:c語言實作學生成績管理程式
下一篇:求大神們看看了
