string表示可變長的字符序列vector存放的是某種給定類型對象的可變長序列malloc()分配的內(nèi)存空間在堆上,由操作系統(tǒng)進(jìn)行管理,必須由程序員主動(dòng)釋放,否則存在內(nèi)存溢出的可能
示例代碼:
char *p = NULL;
p = (char *)malloc(100);
if(p != NULL)
{
free(p);
}
PS1:如果中途對malloc的指針進(jìn)行了類似 p++ 的操作,則無法 free(),遇此情況解決辦法是定義另一個(gè)臨時(shí)指針變量,接手后進(jìn)行相關(guān)操作
PS2:一般定義臨時(shí)輔助變量將通過指針傳入函數(shù)的變量接手,再進(jìn)行其他操作
C語言既可以在棧上分配內(nèi)存,也可以在堆上分配內(nèi)存
char *p = "abcde";中, p是變量,而 “abcde”儲存在全局區(qū)。p 儲存的是 “abcde”所在的地址,即:
指針指向誰,就把誰的地址賦給指針
- 一定要注意函數(shù)的返回值問題