Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Создать объект класса с параметрами-массивами |
Автор: Elen123321 18.4.2014, 23:39 | ||||||
Необработанное исключение NullReferenceException. Ссылка на объект не указывает на экземпляр класса. Описание класса:
Form.h
Среда vs2010, windows forms. Не могу понять в чем загвоздка: или объект не создается, или удаляется до вызова конструктора с параметрами. Не уверена, что правильно приравниваю массивы. В описании класса создаю массивы через указатели, в неуправляемой куче что ли, а в Form.h массивы в стеке. Добавлено @ 23:41 i 0 int - nominals 0x00000000 int* *nominals 0 int - this 0x003AE54C { nominals=0x00000000 amountNom=0x7646CFBE givenNomNow=0x003AE5A0 } CBankom* - amountNom 0x7646CFBE int* *(*this).amountNom -1957298293 int - givenNomNow 0x003AE5A0 int* *(*this).givenNomNow 29907348 int - nominals 0x00000000 int* *(*this).nominals 0 int |
Автор: Elen123321 18.4.2014, 23:59 |
Если меняю значения, элементов массива получается Необработанное исключение типа "System.AccessViolationException" произошло в bankomat.exe Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. |
Автор: feodorv 19.4.2014, 07:57 | ||
Толку от этой надежды, если ниже Вы пишете так: (кстати, где http://ru.wikipedia.org/wiki/%CA%EE%ED%F1%F2%F0%F3%EA%F2%EE%F0_%EA%EE%EF%E8%F0%EE%E2%E0%ED%E8%FF?) Если Вам просто нужно переустановить значения массивов для уже созданного экземпляра класса, то в класс можно ввести соответствующую функцию, например
Вы же в конструкторе массивы не аллокировали (в отличие от CBankom ()). И вызов конструктора вида CBankom::CBankom (Nominals, Kol, GivenN) просто создаст новый (временный) экземпляр класса (с неаллокированными массивами!!!). Куда там изначально указывают мусорные значения полей вновь созданного экземпляра класса, одному Богу известно. Записывать или читать по этим неинициализированным указателям категорически нельзя. |
Автор: Elen123321 19.4.2014, 14:58 |
через RunBankom.Set( Nominals, Kol, GivenN) получилось. Спасибо. Нужно теперь разобраться, как значения массивов Nominals, Kol из файла достать Только вот... Debug assertion failed http://s1.ipicture.ru/uploads/20140419/Vjdy6bTs.jpg |
Автор: Elen123321 20.4.2014, 00:20 |
И правда) не знаю, как скоро бы я обратила на это внимание) Спасибо |