![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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]); // выводит чушь }; }; Заранее спасибо за ответ |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
![]()
Извини за запоздалый ответ
![]() проблема не в заполнении массива, а в том что под динамическую структуру lamp0 память выделяется внутри процедуры lampReset если строку Код:
Код:
Почему возникла такаю проблема незнаю... |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.11.2006
Сообщений: 24
|
![]()
оставил камменты, которые, надеюсь, разъяснят ситуацию:
Код:
твой код проблемму не решает, а лишь добавляет утечек памяти. Код:
Код:
в результате неопределенное поведение и скорее всего а 9 случаях из 10 программа рухнет ![]() иногда, на некоторых компиляторах может срабатывать, но это не говорит о том что всё под контролем. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 10.11.2006
Сообщений: 189
|
![]()
Согласен, пямать зарезервированная под переменные не освобождается в моём коде... (я и не собирался её освобождать :-) )
Цитата:
|
|
![]() |
![]() |
![]() |
#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 |