Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

C++ .NET сборка мусора

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> C++ .NET сборка мусора
Имя
Сообщение << Старые топики   Новые топики >>
C++ .NET сборка мусора - 2012-04-27 20:16:56.756666   
Zmaster_

Сообщений: 10
Оценки: 0
Присоединился: 2012-04-26 13:40:51.550000
Есть класс типа этого:

ref struct MyStruct { array&lt;Byte&gt;^a; MyStruct() { a=gcnew array&lt;Byte&gt;[4]; } } ref class MyClass { MyStruct^ s; public: MyClass() { s=gcnew MyStruct(); } Void Action() { MyStruct-&gt;a[0]='A'; } };
Память под структуру в конструкторе выделилась. Когда выхожу за пределы конструктора, например вызываю функцию Action, ссылка на объект (структуру) пропадает. Думаю, что это сборщик мусора решил что объект больше не нужен и удалил его. Как решить данную проблему, как сказать сборщику мусора, что эту структуру не трогать, когда захочу, тогда и удалю.
Post #: 1
RE: C++ .NET сборка мусора - 2012-04-28 13:01:31.420000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Читай книжки по основам .NET. Память для структуры выделяется на стэке и соответственно, освобождается при выходе за область видимости. Память для класса выделяется в куче.
ref struct MyStruct замени на
ref class MyStruct
{
public:
Post #: 2
RE: C++ .NET сборка мусора - 2012-04-28 15:24:27.130000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Хотя возможно, что я туплю.
Post #: 3
RE: C++ .NET сборка мусора - 2012-04-29 04:24:11.096666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
… а ещё есть подозрение, что спасет обычный "new", но тоже не факт, не проверял.
Post #: 4
RE: C++ .NET сборка мусора - 2012-04-29 15:49:56.746666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Нет, обычный new там не нужен. Где именно и как падает?
Post #: 5
RE: C++ .NET сборка мусора - 2012-05-07 12:56:22.013333   
mishok

Сообщений: 239
Оценки: 0
Присоединился: 2007-07-03 23:42:21.170000
а в .net разве не реализован автоматический сборщик мусора?
Post #: 6
RE: C++ .NET сборка мусора - 2012-05-07 14:26:49.596666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Причём тут сборщик мусора?
Post #: 7
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> C++ .NET сборка мусора







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.