傳入指標來申請記憶體的理解

2021-09-05 12:08:01 字數 677 閱讀 5922

一開始無意注意到兩段**:

函式返回區域性指標變數是否可行?

**一:

**二:

**一是有問題的,很多部落格都做了解釋:

1.指向指標的指標申請動態記憶體

2.關於:如果函式的引數是乙個指標,不要指望用該指標去申請動態記憶體 我的理解

等等都說了,函式會對引數做拷貝,那麼可能對剛接觸的人來講,的確不太好理解。

我的理解就是一句:

_p為系統產生的副本

**一:傳進來的是個指標,但沒有明確的指向誰;(_p = p),分配記憶體後首指標賦值給_p,p並沒有變化。

二**:傳進來的指標,是有指向的,指向的就是外面定義的那個指標str; (_p = p =&str),_p指向str,

*_p=(char *)malloc(num);和 str=(char *)malloc(num);一樣的效果

有更多的理解可以討論

C指標申請記憶體

include struct abc typedef struct abc abc void fun1 abc a,abc b void fun2 abc a main 輸出結果 12 15 如果通過指標申請記憶體的話,就需要用到指標的指標,在林銳博士的文章中提到編譯器會為每個函式的引數最乙個備份,...

記憶體與指標 動態申請記憶體

1 malloc 標頭檔案malloc.h 一維記憶體申請 型別識別符號 變數 變數名 型別識別符號 malloc sizeof 型別識別符號 陣列大小 二維記憶體申請 型別識別符號 變數 變數名 型別識別符號 malloc sizeof 型別識別符號 陣列行大小 for int i 0 i 陣列行...

指向指標的指標申請動態記憶體

在 高質量c程式設計指南 中,提到了如果函式的引數是乙個指標,那麼別指望它能申請動態記憶體。如下 include include void getmemory char p,int num int main void getmemory char p,int num 最後的輸出的stu的結果是0,即...