我的意思是這樣的:
char * pName;
pName = malloc(strlen("Yums") + 1);//動態分配內存空間
memcpy(pName, "Yums", strlen("Yums") + 1);//對第一個字符串賦值
char sBobName[] = "Bob";
strcat(pName, sBobName);//進行字符串拼接,內存增長
free(pName);//在這就會出現內存洩露的問題,free不掉增長的空間,出現內存洩露
我知道一種方式是將第一個字符串開辟一個足夠的空間,但是有沒有更優雅的方式來處理這個問題呢,類似relloc函數一樣可以在拼接時自動檢查內存是否溢出,重新增加 空間。
你的代碼的問題是pName太小了。