一道關於二級指標傳參的問題

2021-07-10 06:21:58 字數 600 閱讀 9222

下面**有什麼問題?

void getmemory( char *p )

void test( void )

解釋:1、getmemory函式的引數應該用二級指標;

2、main函式中的指標p作為形參傳遞,會產生指標的拷貝p_cpy傳入getmemory函式中;即傳入getmemory的指標如果是一級指標的話,所分配的記憶體的位址是給拷貝的指標p_cpy,而不是給p;

3、如果使用二級指標傳遞,pp作為形參,會產生指標的拷貝pp_cpy,此時pp和pp_cpy都是指向p,所分配的記憶體的位址自然也就可以傳遞給*pp(即p)啦!

以上三點僅是說明str並沒有分配到記憶體,是null;編譯出錯。

修改後:

void getmemory( char **p )

void test(void)

}

修改後:

形參改為**p、分配的位址傳給*p、傳過去的引數為&str、判斷是否申請記憶體成功以及free釋放置空指標

二級指標和指標引用函式傳參(C )

在函式的使用過程中,我們都明白傳值和傳引用會使實參的值發生改變。那麼能夠通過傳指標改變指標所指向的位址嗎?在解決這個問題之前,也許我們應該先了解指標非常容易混淆的三個屬性 指標變數位址 p 指標變數指向的位址 p,儲存資料的位址 指標變數指向的位址的值 p 當我們將指標變數與其它變數比較之後就會發現...

二級指標和指標引用函式傳參(C )

在函式的使用過程中,我們都明白傳值和傳引用會使實參的值發生改變。那麼能夠通過傳指標改變指標所指向的位址嗎?在解決這個問題之前,也許我們應該先了解指標非常容易混淆的三個屬性 指標變數位址 p 指標變數指向的位址 p,儲存資料的位址 指標變數指向的位址的值 p 當我們將指標變數與其它變數比較之後就會發現...

二級指標傳參的解釋和函式指標的理解

根據 c語言深度解析 二級指標 void getmemory char p,intnum int main 注意main函式傳參是傳的 str,傳入到函式的是str的位址,是乙個值,不是str的拷貝,而 p就相當於 str 也就是str本身,所以經過這個函式,str的值被改變了,那麼 str指向的就...