|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.07.2011, 19:24 | #1 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
На самом деле вы сами себе противоречите. С одной стороны, вы заявляете, что не хотите объявлять массив, так как можете использовать меньше, чем 1000 структур. С другой стороны вы на самом деле пытаетесь выделить память именно под 1000 структур. Так что на мой взгляд при таком подходе лучше все же объявить массив, причем статический массив, чтобы не забивать им стек.
Во-вторыХ. не надо задавать участникам форума загадки! Если ваш компилятор выдал ошибку, то приведите текст ошибки. Это ускорит получение грамотного ответа на ваш вопрос. Что касается второго вашего вопроса, то вы в результате имеете указатель на первый элемент массива структур, выделенных в памяти. Причем все эти ваши структуры неинициализированы, так как вы не предоставили для них конструктор. Чтобы получить доступ к n-ому элементу структуры, можно использовать синтаксис обращения к элементу массива, то есть l[n].id[0] - это обращение к 0 индексу n-ной структуры.
Со мной можно встретиться на www.clipper.borda.ru
|
15.07.2011, 19:24 | #2 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
На самом деле вы сами себе противоречите. С одной стороны, вы заявляете, что не хотите объявлять массив, так как можете использовать меньше, чем 1000 структур. С другой стороны вы на самом деле пытаетесь выделить память именно под 1000 структур. Так что на мой взгляд при таком подходе лучше все же объявить массив, причем статический массив, чтобы не забивать им стек.
Во-вторыХ. не надо задавать участникам форума загадки! Если ваш компилятор выдал ошибку, то приведите текст ошибки. Это ускорит получение грамотного ответа на ваш вопрос. Что касается второго вашего вопроса, то вы в результате имеете указатель на первый элемент массива структур, выделенных в памяти. Причем все эти ваши структуры неинициализированы, так как вы не предоставили для них конструктор. Чтобы получить доступ к n-ому элементу структуры, можно использовать синтаксис обращения к элементу массива, то есть l[n].id[0] - это обращение к 0 индексу n-ной структуры.
Со мной можно встретиться на www.clipper.borda.ru
|
15.07.2011, 20:20 | #3 |
Пользователь
Регистрация: 13.06.2011
Сообщений: 23
|
Массив динамических структур. Проблема с выделением памяти.
Программа - база данных библиотеки и абонентов. Две связанные id структуры. Поскольку если создавать массив структур, то неизвестно сколько будет максимальное количество книг поэтому лучше сделать динамический массив структур. Граница - 1000 структур. Попробовал так сделать но компилятор выдает ошибку. В чем она?
Код:
Дорога в тысячу миль начинается с одного шага.
|
15.07.2011, 20:32 | #4 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
library(1000) - это выглядит как попытка вызова несуществующего конструктора library(int).
Надо бы такl = new library[1000]; |
15.07.2011, 20:47 | #6 |
Пользователь
Регистрация: 13.06.2011
Сообщений: 23
|
Первую ошибку исправил, а теперь подскажите пожалуйста как получить доступ к id первой структуры? К примеру как присвоить id первой структуры значение равное 12?
Дорога в тысячу миль начинается с одного шага.
|
15.07.2011, 20:51 | #7 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Как-то так...
Код:
Код:
Будь проще и люди к тебе потянутся
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос выделением памяти | Tiro | Общие вопросы C/C++ | 5 | 13.06.2009 16:46 |
Проблемы с выделением динамической памяти malloc (recalloc) | slips | Общие вопросы C/C++ | 6 | 29.04.2009 19:27 |
Создание и использование динамических структур | Oksana11 | Помощь студентам | 5 | 09.01.2008 19:39 |