vc中釋放動態陣列的問題,vc中釋放動態陣列的問題

時間 2022-08-12 22:25:04

1樓:早苗綾

我覺得問題不是出在free函式的呼叫上面,而是出在memcpy這個函式的呼叫上面,memcpy函式的呼叫形式如下:

memcpy(void *dest, const void *src, size_t n);

關鍵在於size_t n這n上面,樓主在位p分配空間的是用count就已經是位元組數了,而這裡的size_t n也是位元組數並不是塊數,樓主在使用這個函式的時候卻把count誤認為是塊數了,所以實際實際大小會是count * sizeof(short) = count * 2 = 100 * 2 = 200的,其實呼叫memcpy直接將count傳入即可;其實我明白樓主的意思,count這個引數應該是作為塊數傳入函式進行分配的,但是恰恰在malloc分配的時候count就被視為了位元組數,malloc的引數就是制定要分配的位元組數,若count做為塊數則實際要分配的長度就是count * sizeof(short),那麼memcpy呼叫就變成memcpy(p,src,count * sizeof(short));

2樓:

memcpy(p,src,200);

我就想問這 200 怎麼來的....你可別告訴我是 100*2....

VC 中的符號與是什麼意思,VC 中「 」符號是什麼意思

3.按位異或運算 按位異或運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9 5可寫成算式如下 00001001 00000101 00001100 十進位制為12 main 是作用域運算子 注意你打的是分號 兩種可能 ...

VC 中,setw 是什麼函式

郭歡 setw n 的作用為設定欄位寬度為n位。上述介面與ios base的格式控制成員是對應的,可以二者配合進行輸出格式的精準控制。其中的精度控制預設是6位有效數字,科學計數法中的指數部分e為預設小寫。setw設定的寬度如果小於欄位寬度會失效 如果在一次輸出過程中需要混雜多種格式,使用ios ba...

VC中如何獲取本機計算機名,VC 獲取本機IP

刊下外寫悉臨嘆聲碰悶 婚姻是愛情的墳墓,不過別難過,每個人最終都會走進墳墓,放心去吧,阿門!三種方法 長短邊分別為 長6短1,長5短2,長4短3 include pragma comment lib,ws2 32.lib void main char hostname 1024 struct hos...