C語言,動態改變字串或陣列的記憶體大小

2021-10-08 18:36:48 字數 511 閱讀 2470

進行具體操作前,需注意兩點:

1.要通過二級指標來改變陣列名,或字串名所指向的記憶體空間

例:char* str = "zmy" 定義了乙個字串,如果想改變str所指向的記憶體空間,不能直接通過 str = 0x123456 來改變,要將該陣列名取位址賦值給乙個二級指標 char** pstr = &str ,然後通過 *pstr = 0x123456 來改變str所指向的記憶體空間
2.如果乙個指標變數儲存了動態申請的記憶體位址,就不能通過該變數直接訪問位址所指向的內容,要通過中間變數

例:char* pm = (char*)malloc(5) ,這裡申請了一塊大小為5位元組的記憶體,如果我們想往這個記憶體裡放幾個字元a、b、c、d、e,就不能通過 pm[1] = 'a' 或 *pm + 1 = 'a' 來直接將a放裡邊,要從新定義乙個中間變數 char* tpm = pm,然後通過 tpm[0] = 'a' 或 *tpm +1 = 'a' 來將字元放入這個動態記憶體中

C語言的字元陣列,字串,字串常量

首先來看一段源 include int main 剩餘部分為 0 char brr 不是字串,因為沒有 0 char crr 10 字元陣列特有 char drr 10 abc 字元陣列特有 char err abc 字元陣列特有 char frr 10 printf s n arr printf ...

C語言,字串的處理,陣列字串,指標字串。

c語言菜鳥教程 void memset void str,int c,size t n 複製字元 c 乙個無符號字元 到引數 str 所指向的字串的前 n 個字元。size t strlen const char str 計算字串 str 的長度,直到空結束字元,但不包括空結束字元。char str...

mooc c語言 字串比較 動態陣列

動態分配陣列 include int a int malloc n sizeof int free a 若 a free a 失敗 申請哪個位址還哪個位址因為malloc成功返回 void 所以要型別轉換,沒空間了返回null或0 int p int i p i free p 錯誤free null...