Использование realloc (X, 0) вместо free () и использование malloc с длиной строки +1

Так что я нея действительно знаю, как поставить название на этот раз. Прежде всего яЯ хотел бы сказать, что яЯ видел несколько комментариев на этой странице о предупреждении, если вопрос связан с "домашнее задание", Мой есть, но этоЭто также завершено, и я просто хочу лучше понять, что происходит с кодом.

Я также некоторое время читал посты и книги, но думаю, что мне все еще чего-то не хватает.

У меня есть 2 строки кода, я неЯ не совсем понимаю код, с которым работал. Работа заключается в получении того файла, который используется в качестве аргумента (если онs 0 файлов, он читает из stdin) и выводит его на стандартный вывод в обратном порядке. Все это, говоря о C, как я пытался вставить в тег.

Первая проблема заключается в следующем:

array = realloc (array, 0);

Где массив определяется как

char **array;

И проблема в том, что бесплатно нене работает, это не освобождает используемое пространство (возможно, я использовал это неправильно? В другом месте я знал, как использовать это, но не в этот раз). После проведенного тестирования и прочитанного я считаю, что realloc делает то же самое, но ям нет 100%.

Второй:

char* alloc = malloc (strlen ((char*)string)+1);

Где alloc используется для копирования точной длины строки, которую я собираюсь поместить в массив, так что после этого я могу просто напечатать текст в обратном направлении.

И вопрос в том, почему я должен использовать это +1. Я имею в виду, если я нене использовать по какой-то причине, это нея пытался работать с разными номерами, и это работает каждый раз, но если я не+1, это не работает правильно.

Я знаю, что вопрос слишком расплывчат и плохо написан, чтобы на него можно было ответить, но опять же, яЯ не уверен в этом, и я сделал все возможное, чтобы объяснить себя (английский не родной язык, как этовероятно, очевидно).

Ответы на вопрос(6)

Ваш ответ на вопрос