指標做為引數傳遞

2021-06-04 22:44:42 字數 522 閱讀 5153

如果乙個函式的引數是乙個指標,不能用此指標去動態申請記憶體,

#include #include using namespace std;

void getmemory(char *p,int size)

void test()

int main(void)

傳送錯誤是因為:getmemory()函式中申請記憶體的時候,函式為引數申請了乙個臨時副本:_p=p,如果函式體內修改了副本的內容,那麼也就修改了p的內容,這就符合了指標作為輸出引數的原因,但是在這裡,只是把副本_p的記憶體位址改變了,但是p沒有被改變,所以不能返回。

解決辦法就是使用「指向指標的指標」去申請記憶體。例項**如下:

void getmemory(char **p,int size)

void test()

void test()

void test()

void test()

指標引數傳遞

字串傳遞1 void test char p1 int main 方法2 void test char p1 int main 方法3 void test char p1 int main 以下是錯誤的,因為在函式體內改變p1本身的值,不會影響實參p1本身的值 static char a 100 v...

指標引數傳遞

本文源自 1 指標作為引數傳遞進去的僅僅只是指標的值,而不是指標的位址,或者說只是指標的乙份拷貝,例如 void pointer int p intmain the p is0xbfd46498 addr is 1076599652,p is 22the p is0xbfd46498 addr is...

指標引數傳遞

relation 1 指標作為引數傳遞進去的僅僅只是指標的值,而不是指標的位址,或者說只是指標的乙份拷貝,例如 void pointer int p int main the p is 0xbfd46498 addr is 1076599652,p is 22the p is 0xbfd46498 ...