Я получаю некоторые странные прерывистые прерывания данных (<5% времени) в некоторых моих кодах при вызове <code>memset(). Проблема в том, что обычно этого не происходит, если код не выполняется в течение пары дней, поэтому его трудно уловить.
Я использую следующий код:
char *msg = (char*)malloc(sizeof(char)*2048);
char *temp = (char*)malloc(sizeof(char)*1024);
memset(msg, 0, 2048);
memset(temp, 0, 1024);
char *tempstr = (char*)malloc(sizeof(char)*128);
sprintf(temp, "%s %s/%s %s%s", EZMPPOST, EZMPTAG, EZMPVER, TYPETXT, EOL);
strcat(msg, temp);
//Add Data
memset(tempstr, '\0', 128);
wcstombs(tempstr, gdevID, wcslen(gdevID));
sprintf(temp, "%s: %s%s", "DeviceID", tempstr, EOL);
strcat(msg, temp);
Как видите, я не пытаюсь использовать memset с размером, большим, чем тот, который изначально выделен для malloc()
Кто-нибудь видит, что может быть не так с этим?