<div>Здравствуйте, по поводу предыдущего замечания:</div><div> </div><div>&gt;"realloc(3) может не сработать и вернуть NULL, в таком случае вы <br />затрёте рабочий указатель на выделенный блок памяти в структуре. "</div><div> </div><div>Память не затирается, т.к &lt;цитата&gt;: "Если  запрос  выполнить  не <br />       удается  или  новый  размер  равен нулю, возвращается NULL.  Если вызов <br />       realloc()  завершился  неудачно,  то  старый   блок   памяти   остается <br />       нетронутым: он не освобождается и не перемещается"</div><div> </div><div>Честно говоря, я не вижу ошибок, все делали точь в точь как описано по ссылкам, которые вы дали.</div><div> </div><div>В прошлый раз вы сказали, что <br /> <br />"1. malloc(3) может не сработать и вернуть NULL. Нигде не проверяется что <br />он возвращал. <br /> <br />2. realloc(3) может не сработать и вернуть NULL, в таком случае вы <br />затрёте рабочий указатель на выделенный блок памяти в структуре. <br /> <br />3. Изменять размер блока памяти, где хранятся указатели, надо не каждый <br />раз при добавлении, а сразу выделять блок большего размера а затем <br />заполнять его, поддерживая счётчик занятых и выделенных мест для <br />указателей. Если окажется, что места для добавления очередного указателя <br />нет, тогда размер блока увеличивается в два раза, через realloc(3). <br /> <br />4. parray_free() должен освобождать все ресурсы, занимаемые массивом <br />указателей. Кроме этого, его декларация не соответствует прототипу в <br />заголовке, предложенного вам. Это важно. "</div><div>Вы в  прошлый  раз сказали еще, что нужно отслеживать была ли выделена память, добавили тоже.</div><div>Это все исправили ведь, что еще может быть не так?</div><div> </div><div>ps. Стиль еще будем смотреть.</div>