1樓:匿名使用者
這個就要知道函式的工作原理了,
你在呼叫malloc的時候建立了乙個p的副本presult此時,presult = null;
然後執行presult = (int*)malloc(isize);
那麼presult被賦值為動態記憶體的首位址malloc結束時presult又被**,所以p的值又沒有相應改變。
2樓:匿名使用者
沒有用的,這樣不能返回申請的記憶體
這樣就可以了
void malloc(int isize, int**presult)
int* p = null;
malloc(100, &p);
這樣也可以.
int * malloc(int isize, int*presult)
int* p = malloc(100, p);
3樓:匿名使用者
你這是傳值呼叫啊,當然不能返回值。引數用 int **,用*p=(int*)malloc傳入&p就可以了。
4樓:匿名使用者
請永遠記住c語言不是c++,只能按值傳遞,你這個問題是個非常經典的問題,估計是你看書看到這樣的例子吧,二樓為你提供了兩種解決方法,請按其操作
C語言問題,C語言問題
符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...
C語言問題,c語言問題
這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...
c語言編寫《分糖果問題》,C語言程式設計怎麼解決分糖問題
倒!又是腦筋急轉變!都是高手看的東東。閃!這也太難了吧 期待回的人出現 倒又腦筋急轉變 都高手看東東閃 c語言程式設計怎麼解決分糖問題 分糖果問題 幼兒園有n 20 個孩子圍成一圈分糖果,老師先隨機地發給每個孩子若干顆糖果,然後按以下規則調整 每個孩子同時將自己手中的糖果分一半給坐在他右邊的小朋友 ...