В целом, я даже не уверен ещё правильно ли освобождаю память, и освобождается ли она вообще. но на запуске дебаггер ругается именно на этот участок, и выдаёт ошибку "%процесс_нейм% вызвал точку останова, что я так понимаю на ломанном русском означает бряк. Ну и вопрос - каким образом удалить массив, не вызвав ошибок, и что конкретно тут я сделал не так с Temp.
И это, если не слишком обнаглею - ещё было бы неплохо написать, освобождается ли память в данном методе (через free), и происходит ли утечка памяти (хотя вроде эти вопросы взаимоисключающие, но лучше знать наверняка)
И да, я знаю что проблемы с delete[] и char*/new char поднимались на форумах уже не одну сотню раз, но я перепробовал каждый из вариантов что там советовали, мне ни один из них не помог! Более того - некоторые писали, что у них компилируется нормально и так, вот как написано у меня - но у меня-то ошибка выскакивает .-. Простите за заезженную тему, сам не рад поднимать, но я в тупике
if (Process32First(snapshot, &entry) == TRUE)
{
while (Process32Next(snapshot, &entry) == TRUE)
{
char temp[250];
CharToOemW(entry.szExeFile, temp);
void* Arr = calloc(strlen(temp), 1);
memcpy(Arr, &temp, strlen(temp));
delete[] temp; //а вот тут вылетает бряк
MessageBoxA(NULL, (char*)Arr, "Groth Arkosh!", MB_OK);
if (strcmp((char*)Arr, __processName) == 0)
{
ret = entry.th32ProcessID;
free(Arr);
break;
}
free(Arr);
}
}
Спасибо за внимание.
Продвижение своими сайтами как стратегия роста и независимости