關於子函式給主函式指標分配記憶體

2021-06-26 06:12:27 字數 666 閱讀 9346

典型的錯誤例子如下

在這個主函式的指標給子函式傳遞乙個指標,而在子函式中形參有開闢了一塊記憶體,此子函式的指標的記憶體裡儲存的位址與主函式是同一位址,即主函式的指 針和子函式形參的指標都指向同一塊記憶體的位址,但是在子函式裡,為子函式的指標申請了一塊空間,並不影響主函式的指標。因為子函式的指標又指向了別的內 存。要想分配成功就得用下面兩個例子。乙個是在子函式的形參中第一指向指標的指標即二級指標,叫子函式的指標指向實參的指標,另外一種方法就是返回子函式 分配完記憶體的指標。

失敗的例子

#include

#include

#include

fen_pei(char *p,int n)

}int main()

成功的方法1,返回分配記憶體的指標

#include

#include

#include

char *fen_pei(char *p,int n)

return p;

}int main()

成功的方法2.,在子函式形參中使用指向指標的指標

#include

#include

#include

void fen_pei(char **p,int n)

}int main()

理解:傳遞指標,其實傳遞的是乙個指標副本。

主函式和子函式 私有函式 巢狀函式

同乙個指令碼檔案中若有多個函式,則分為主函式和子函式,每個m 檔案都要求有乙個主函式,它最先出現在該 m檔案中 與檔案同名。主函式可以與該 m檔案外的其他函式相互作用,只要該檔案所在目錄屬於 matlab 搜尋路徑 子函式 subfunctions 的執行範圍 只能與該 m檔案中的其他函式相互作用,...

記憶體分配函式

2.c中提供堆區供給開發者分配記憶體空間,動態記憶體分配函式malloc,calloc,realloc 1 malloc函式的使用,原型為void malloc int length 引數為分配記憶體空間的大小 將記憶體分配4個位元組給乙個int型指標 返回值為任何指標 考慮到不同平台,可以使用si...

記憶體分配函式

1 malloc 函式 void malloc unsigned int size 在記憶體的動態分配區域中分配乙個長度為size的連續空間,如果分配成功,則返回所分配記憶體空間的首位址,否則返回null,申請的記憶體不會進行初始化。2 calloc 函式 void calloc unsigned ...