Как дать параметру внутреннюю часть другого указателя?
я хочу сохранить имя в структуре чего-то в другой копии , чем исходная копия, которую я получил в качестве параметра, я сделал это, но это неправильно из-за свободной вещи .. но я должен сделать это бесплатно внутри этой функции, я думаю ... когда я пытаюсь запустить свою программу в eclipde, она просто говорит мне, что у меня что-то не так, и то же самое происходит, когда я пытаюсь запустить debbug .. я точно знаю, что проблема в free, потому что если я удаляю free, то все работает идеально !
Что я уже пробовал:
<pre>typedef struct Ssomething { int num; char *name; Level level; } Something;
Result copy_name(Something *something, char *name) { if (something == NULL || name == NULL) { return NULL_PARAMETER; } char *name2 = malloc(strlen(name) + 1); if (name2 == NULL) { return MEMORY_PROBLEM; } memcpy(name2, name, strlen(name) + 1); something->name = name2; free(name2); return OK; }