|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.11.2006, 09:38 | #1 |
Новичок
Джуниор
Регистрация: 29.11.2006
Сообщений: 1
|
помогите: динамический массив в структуре
Добрый день.
Есть такая пзадача: нужно сделать динамический массив структур, причем в структуре так же существует динамический массив. Помогите разобраться, как его верно заполнять, потому что мои потуги не приводят к положительному исходу. текст того что навоял: typedef struct { int *delta; // жинамический массив в структуре int posN; int posCnt; int posCounter; } l_struct; // функция, задающая начальные значения void lampReset(l_struct *lamp) { lamp = new l_struct; lamp->delta = new int[3]; //задание памяти под массив lamp->posN=3; lamp->posCnt=0; lamp->posCounter=0; //собственно само проблеммное место: for(int i=0;i<3;i++) { lamp->delta[i]=(i+12); }; } void main(void) { l_struct *lamp0; lampReset(lamp0); printf("\nARRAY:"); for(int i=0;i<3;i++) { printf("\n%d",lamp0->delta[i]); // выводит чушь }; }; Заранее спасибо за ответ |
27.12.2006, 13:20 | #2 |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
Извини за запоздалый ответ
проблема не в заполнении массива, а в том что под динамическую структуру lamp0 память выделяется внутри процедуры lampReset если строку Код:
Код:
Почему возникла такаю проблема незнаю... |
27.12.2006, 22:53 | #3 |
Пользователь
Регистрация: 09.11.2006
Сообщений: 24
|
оставил камменты, которые, надеюсь, разъяснят ситуацию:
Код:
твой код проблемму не решает, а лишь добавляет утечек памяти. Код:
Код:
в результате неопределенное поведение и скорее всего а 9 случаях из 10 программа рухнет иногда, на некоторых компиляторах может срабатывать, но это не говорит о том что всё под контролем. |
28.12.2006, 10:42 | #4 | |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
Согласен, пямать зарезервированная под переменные не освобождается в моём коде... (я и не собирался её освобождать :-) )
Цитата:
|
|
28.12.2006, 12:42 | #5 | |
Пользователь
Регистрация: 09.11.2006
Сообщений: 24
|
Цитата:
не. по умолчанию по значению. а чтобы було по сцылке надо явно указывать ссылку - после имени типа ставить амперсанд ( & ) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический массив | _ares_ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.12.2007 23:54 |
динамический массив | Diller | Помощь студентам | 48 | 07.10.2007 16:43 |
Динамический массив. | Mickle | Помощь студентам | 9 | 21.06.2007 20:31 |
Динамический массив | Mickle | Общие вопросы Delphi | 8 | 19.06.2007 06:45 |
Динамический массив + Dll. | LEKA | Общие вопросы Delphi | 7 | 11.05.2007 20:05 |