Динамические массивы и объекты
Добавлено: 11 мар 2008, 09:10
Есть двойной динамический массив в объекте.
Например
Type Tmassiv=array of integer;
TPmassiv=array of Tmassiv;
TObj=object
public:
....
procedure Init(size:integer;vert:Tmassiv);
private:
mas:TPmassiv;
count:integer;
end;
Создаю при помощи GetMem так:
GetMem(mas,(count)*sizeof(Tmassiv));
for i:=0 to count-1 do
GetMem(mas,(count)*sizeof(integer));
освобождаю при FreeMem, так
for i:=0 to count-1 do
FreeMem(mas);
FreeMem(mas);
в проге создаю этот объект и использую его (для графики OpenGL). Но вот суть проблемы: в Init использую константный массив и указываю его размер. Когда создаю один объект или пару одинаковых, то все работает нормально, но когда создаю разные (путем установки в Init других массивов) появляется сообщение об ошибке : Invalid Pointer operation.
При проработке всех массивов в отдельности все работает, но при совмещении нет. Если кто-нибудь понял меня или знает ответ, прошу написать. Заранее благодарю
Например
Type Tmassiv=array of integer;
TPmassiv=array of Tmassiv;
TObj=object
public:
....
procedure Init(size:integer;vert:Tmassiv);
private:
mas:TPmassiv;
count:integer;
end;
Создаю при помощи GetMem так:
GetMem(mas,(count)*sizeof(Tmassiv));
for i:=0 to count-1 do
GetMem(mas,(count)*sizeof(integer));
освобождаю при FreeMem, так
for i:=0 to count-1 do
FreeMem(mas);
FreeMem(mas);
в проге создаю этот объект и использую его (для графики OpenGL). Но вот суть проблемы: в Init использую константный массив и указываю его размер. Когда создаю один объект или пару одинаковых, то все работает нормально, но когда создаю разные (путем установки в Init других массивов) появляется сообщение об ошибке : Invalid Pointer operation.
При проработке всех массивов в отдельности все работает, но при совмещении нет. Если кто-нибудь понял меня или знает ответ, прошу написать. Заранее благодарю