[問題] C語言將指標丟進函式malloc記憶體問題

作者: coolE (NULL)   2015-04-01 18:05:40
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
NO
程式碼(Code):(請善用置底文網頁, 記得排版)
example:
void foo(char* buf, int size)
{
n = ...//計算得
buf = (char*)malloc(size+n);
//省略
}
void main()
{
char* ptr;
foo(ptr);
//利用ptr指向的記憶體做事
}
補充說明(Supplement):
我想要宣告一個指標,我有需求要在foo裡面realloc/malloc所以傳指標進去foo()
在C++的環境下
我使用call by reference
void foo(char* &buf, int size)時可以完成我的目的
但我後來發現在C的環境中無法使用reference
用void foo(char* buf, int size)已我目前水準無法正確的在副程式malloc記憶體,
後來供主程式使用這塊記憶體.
在副程式裡面malloc記憶體再將指標傳回當然是可以做, 但是好奇假如限制用
void foo(char* buf, int size) 是否有辦法完成我要的目的? 謝謝!
作者: LPH66 (-6.2598534e+18f)   2015-04-01 18:08:00
再加一層 *
作者: azureblaze (AzureBlaze)   2015-04-01 18:17:00
http://ideone.com/y7fzXS大多數情況下reference是讓多一層*變比較好看
作者: coolE (NULL)   2015-04-01 18:48:00
多謝兩位高手提示,小弟已用**buf試出來了 謝謝!
作者: CumCumCum (2 hard 2 hard)   2015-04-02 22:35:00
指標指標

Links booklink

Contact Us: admin [ a t ] ucptt.com