У меня есть массив в C, давайте предположим, что это
**arr = malloc(100 * sizeof(char*));
через какую-то функцию, я заполняю этот массив таким образом, чтобы он в итоге оказался
arr = {"first", "second", "third", "fourth", ... "tenth"};
Теперь, если я хочу заполнить его заново, чтобы оно было
arr = {"1st", "2nd", "3rd"}; //Desired outcome
вместо этого он отображается как
arr = {"1st", "2nd", "3rd", "fourth", "fifth", ... "tenth"}; //Actual outcome
Я уверен, что мой код неверен, и моя функция для его заполнения из пустого - это хорошо, но я просто хочу найти способ стереть его. Я попытался free (), но я использовал это неправильно, или это не то, что я должен использовать.
У кого-нибудь из вас есть функция, которая может не только установить строку на "\0"
, но и полностью уничтожить ее?
Всем, кто прокомментировал и ответил, спасибо.
Я использовал текстовые файлы, strtok и strdup для чтения слов из файла в двойной указатель char
. Я не хочу, чтобы в массиве хранилось более 5000 слов, даже если мой файл содержит 5001+ слов.
Я сделал это. Я успешно заполнил память строками из файла. Но если бы я передумал и попытался заполнить память меньшим файлом (~ 30 слов), он изменил бы первые 30 и оставил бы 4970, как они были, когда я хотел, чтобы их не существовало.