Я пытаюсь выполнить malloc и освободить небольшой массив / таблицу однобуквенных строк. Я знаю, что это можно сделать в массиве, но я хочу попробовать сделать это с помощью malloc и free.
У меня есть это прямо сейчас:
char **letters = (char**) malloc(5 * sizeof(char*));
int i =0;
for(i=0; i < NUMLETTERS ; ++i )
{
letters[i] = (char*) malloc(2*sizeof(char)); //2 is for the letter and null terminator
}
letters[0] = "a";
letters[1] = "b";
letters[2] = "c";
letters[3] = "d";
letters[4] = "e";
//Do stuff here
int i =0;
for(i=0; i < 5; ++i )
{
free(letters[i]);
}
free(letters);
Приведенный выше код компилируется нормально, и мой промежуточный код также работает и работает нормально, но во время выполнения он получает ошибку во время бесплатных частей. Кроме того, после использования valgrind .. он говорит, что free (letter [i]); недействителен.
Любая помощь?