ttnl
написал 15 августа 2006 года в 12:18 (846 просмотров)
Ведет себя
неопределенно; открыл 2 темы в форуме, оставил 1 комментарий на сайте.
Мне нужно выделить память под массив структур, размер которого заранее не известен.
Размер массива увеличивается в процессе работы программы.
Размещает ли функция malloc массив как единый участок в памяти? Может ли возникнуть
следующая ситуация: realloc’у, увеличивая размеры этого участка, не удалось найти места,
чтобы поместить массив как единое целое (память фрагментирована?), и программа
завершилась с ошибкой?
Может быть лучше использовать список:
struct data
{
struct data *next;
struct data *prev;
…
};
По собственным ощущениям. Со списком ничего подобного случится не может,
но хочется сделать проще.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Да.
Может. В таком случае возвращается NULL. Если ты не будешь проверять возвращаемое значение, программа действительно выпадет в SEGFAULT.
Может быть. Решать тебе. Кстати, есть много разных видов списков (односвязные/двусвязные, циклические или нет и т.д.), все это зависит от конкретных нужд.
Может, конечно — память не резиновая. Но вероятность такого исхода значительно меньше.
Большое спасибо. Принимаю Ваш совет как руководство к действиям.