sprintf 會造成越界錯誤

2021-08-25 23:09:44 字數 524 閱讀 5196

sprintf()會造成越界,在釋放記憶體,做delete時會報錯誤,使用的時候要注意。

例如:先建一字元陣列,並給其分配記憶體

char *tmp = new char[255];

memset(tmp,'/0',255);

使用sprintf(), 將char *data 拷貝到tmp, data 長度超過255:

sprintf(tmp,"data=%s", data);

則在delete tmp 時,產生如下錯誤:

char *tmp = new char[255]; file* fp=fopen(tmpfile,"r"); if(fp==null) //1.讀出檔案內容 char *data = new char[1024*10]; memset(data,'/0',1024*10); int k =0; int total = 0; while(!feof(fp)) fclose(fp); sprintf(tmp,"data=%s",data); afxmessagebox(tmp); delete tmp;

release版本sprintf造成的崩潰

使用sprintf 的常見問題 sprintf 是個變參函式,使用時經常出問題,而且只要出問題通常就是能導致程式崩潰的記憶體訪問錯誤,但好在由sprintf 誤用導致的問題雖然嚴重,卻很容易找出,無非就是那麼幾種情況,通常用眼睛再把出錯的 多看幾眼就看出來了。1,緩衝區溢位 第乙個引數的長度太短了,...

ios併發會造成什麼問題 痔瘡會造成什麼傷害?

隨著秋冬的臨近,痔瘡成為高發疾病,無論男女老少,都有可能成為痔瘡感染的 目標 由於早期症狀不明顯,很多人沒有意識到這一點,但隨著食物和生活習慣的發展,患者可能會出現大出血 痔瘡核逃脫 粘液滲出等情況,病情反 作,久病不癒,將會非常棘手。痔瘡的高發原因 1.喜歡刺激辣的食物 辛辣食物對胃腸刺激性大,會...

你可能會因為關鍵字選取錯誤造成損失

關於電商 seo優化,相信很朋友都搖頭,老闆一問為什麼做那麼多時間還沒有優化上去?有些seo有苦難口,在這個給seo學院推薦可以到seo 這些學習seo相關知識,現在我們就談談seo極具挑戰性,而對於大型電商 seo既是重中之重,也是難中之難。你需要梳理龐大而複雜的 結構 不停地優化每天都在更新產品...