Re[4]: invalid fastbin entry (free):
От: Ovoshlook  
Дата: 17.04.14 19:47
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Ovoshlook, Вы писали:


W>>>Вот, например, если смотреть на имена, то почему у тебя j хранит длину строки в одном месте: int j=strlen(arr->substrings[i-1]);, а в другим месте — используется для определения длины массива указателей, которые ссылаются на эти строки: map.name=(char **)malloc(sizeof(char *)*j+1); ?

O>>Потому что выделяемая область памяти зависит от размера строки, который в свою очередь хранит переменная j

EP>map.name — это массив массивов, или по-другому — массив строк.

EP>Количество элементов в массиве строк, зависит от количества строк, и не зависит от размера конкретной строки (то есть не зависит от j).

map.name=(char **)malloc(sizeof(char *)*j+1);

Так я выделяю для конкретного элемента массива. То есть не для количества строк в этом массиве, а для уже конкретной строки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.