Я создаю модульную функцию, и я не понимаю, почему я получил ошибку сегментации после освобождения моего модуля.Сегментация Ошибка при вызове free()
Мой .h файл
void StringInit(String *this, char const *s)
{
this->str = strdup(s);
printf("%s\n", this->str);
}
void StringDestroy(String *this)
{
if(this == NULL || this->str == NULL)
return;
this->str = NULL;
free(this);
}
int main()
{
char *str;
String test;
str = "hello\n";
StringInit(&test, str);
StringDestroy(&test);
return(0);
}
'.h' файл ?? 'Главный()' ?? –
Как в сторону, я бы не рекомендовал называть ваши переменные «этим». Это смущает людей C++ и делает их действительно запутанными, если вы когда-либо конвертируете код в C++. Назовите это «я» вместо этого или что-нибудь более описательное. – acarlon
@acarlon, ты слишком прав! Когда я увидел «бесплатно (это)», я сделал: O лицо в течение как минимум 5 секунд ... –