char 的賦值問題

2021-06-08 07:38:09 字數 427 閱讀 2851

在實際程式設計過程中常會用到char*型別來表達字串,而此時如果使用動態分配的方式並且在賦值時沒有使用strcpy函式而是直接使用「=」,則在釋放該指標空間時會產生堆溢位錯誤,造成該問題產生的原因大家都明白只是沒注意。所以在此時char*賦值建議使用拷貝函式來處理,例項:

char** mtype=0;

mtype=(char**)malloc(10*sizeof(char*));

for (int i=0;i<10;i++)

strcpy_s(mtype[0],256,"sss");//用此句則在釋放mtype指標空間時不會報錯

//mtype[0]="sss";//如果用此句則在下面刪除時會報錯

string mttt=mtype[0];

for (int i=0;i<10;i++)

free(mtype);

Char陣列的賦值

1 定義的時候直接用字串賦值 char a 10 hello sizeof a 為10 或char a hello sizeof a 為6 注意 不能先定義再給它賦值,如char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 sizeof a 為10 或...

vc 下char陣列賦值亂碼問題

最近做個vc 程式,要將乙個char陣列的從第n位開始取到n m位,然後賦給乙個char陣列,但是最後總是有亂碼,經過查閱資料,是因為沒有結尾的 0 字串後面的部分記憶體內容存放的 恰好是中文字元 所以就顯示中文了。例如陣列從第2位取到倒數第2位 code 1char pbuf new char l...

用Qstring給char 陣列賦值

tree data.desc desc是char 80 型別的資料 qstring newdescstr strcpy tree data.desc newdescstr.tolocal8bit data 注意 tolocal8bit 為了讓qstring變成qbytearray,也為了漢字本地化處...