[英]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.