程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 內存洩露-C 如何安全的free掉因為字符串拼接(strcat)引起的內存增長的內存

內存洩露-C 如何安全的free掉因為字符串拼接(strcat)引起的內存增長的內存

編輯:編程綜合問答
C 如何安全的free掉因為字符串拼接(strcat)引起的內存增長的內存

我的意思是這樣的:
char * pName;
pName = malloc(strlen("Yums") + 1);//動態分配內存空間
memcpy(pName, "Yums", strlen("Yums") + 1);//對第一個字符串賦值

char sBobName[] = "Bob";
strcat(pName, sBobName);//進行字符串拼接,內存增長

free(pName);//在這就會出現內存洩露的問題,free不掉增長的空間,出現內存洩露
我知道一種方式是將第一個字符串開辟一個足夠的空間,但是有沒有更優雅的方式來處理這個問題呢,類似relloc函數一樣可以在拼接時自動檢查內存是否溢出,重新增加 空間。

最佳回答:


你的代碼的問題是pName太小了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved