[英]strcat and malloc
目前,我需要將 strcat() 2 個字符串放在一起。 問題是我必須這樣做 3 次。 (總共 6 個連接)。 程序是這樣的,使用循環重復 3 次:
問題是,即使在我釋放字符串並重新 malloc 之后,strcat 似乎仍在繼續連接前一個字符串。
例如:
預計來自 AA BB CC DD EE FF 的 Output
實際 Output:
有誰知道為什么要這樣做?
void sendInitialHand(card * deck) {
char * stringToSend;
playerNode * curNode;
curNode = housePlayers.head;
for (int i=0; i<housePlayers.playerCount; i++) {
stringToSend = malloc(sizeof(char)*6);
for (int j=0; j<52; j++) {
if (deck[j].inPlay == curNode->playerFD) {
strcat(stringToSend, deck[j].identifier);
}
}
for (int j=0; j<52; j++) {
if (deck[j].inPlay == 10) {
strcat(stringToSend, deck[j].identifier);
}
}
printf("[NETWORK] Send %d the following: %s\n", curNode->playerFD, stringToSend);
//send(curNode->playerFD, stringToSend, 6, 0);
free(stringToSend);
curNode = curNode->next;
}
}
在ptr=malloc(…)
之后,在strcat()
之前,用*ptr = '\0';
初始化空間 . malloc()
返回的 memory 通常不歸零。
使用 printf 語句檢查您的循環結構,很可能您沒有釋放您認為是的東西。 將根據代碼編輯答案..
您只重新 malloc,這只是說嘿我要寫在這里..這就是您已經說過的。 嘗試釋放/重新初始化變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.