Я использую strtok_s с выделенной строкой.Почему strtok_s работает, когда я использую StrDup?
Код выше обрабатывает исключение:
char *string1 = NULL;
string1 = (char*)LocalAlloc(LPTR, 100 * sizeof(char));
// TODO: Verify if string1 != NULL
string1 = "A string\tof ,,tokens\nand some more tokens";
token1 = strtok_s(cp1, seps, &next_token1);
Но когда я называю StrDup, мой код работает:
cp1 = StrDup(string1);
token1 = strtok_s(cp1, seps, &next_token1);
Однако мое понимание StrDup он использует LocalAlloc выделить дисковое пространство для копия строки (согласно MSDN).
Итак, что не так в моем первом примере? Как исправить этот код без использования StrDup?
что LocalAlloc? – quantdev
Я думаю, что вы просачиваете память. Вы потеряли указатель, возвращенный LocalAlloc. – Mabus
О, боже мой, это ошибка новобранец ... Меня это беспокоило, когда я написал этот вопрос. Спасибо за ответы. – igloo42