char* erase_symbol(char* string, int index)
{
const int size = _strlen(string) - 1;
char* _string = (char*)malloc(sizeof(char) * size);
for (int i = 0; i < index; i++)
{
*(_string + i) = *(string + i);
}
for (int i = index; i < size; i++)
{
*(_string + i) = *(string + i + 1);
}
free(string); // в этой строке программа крашится
return _string;
}
Нужно ли вообще очищать память в старом указателе?