Никогда не приводите возвращаемое значение malloc()
в C . Он скрывает предупреждения компилятора, которые действительно вам помогают, и в этом нет необходимости, поэтому он просто добавляет беспорядок. Вы должны использовать:
pageName = malloc(nPages * sizeof *pageName);
Обратите внимание, как это свободно от повторений имени типа pageName
. Здесь sizeof *pageName
означает «размер объекта, на который указывает pageName
», то есть «размер указателя символа». Вы должны ожидать sizeof
выражение в качестве аргумента malloc()
очень часто.
Кроме того, sizeof (char)
всегда равен 1 в C, так что конкретное выражение, можно утверждать, добавляет больше беспорядка, чем помогает сделать код безопасным.