|
// tstttt.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "stdlib.h"class SmartArray
{
public:
SmartArray (int size) {m_size = size; m_pmem = malloc (size);}
virtual ~SmartArray() {delete [] m_pmem;}
void Realloc() {m_pmem = realloc (m_pmem, m_size);}
char operator[](int idx) const {return *((char *)m_pmem + idx);}
char& operator[](int idx) {return ((char *)m_pmem)[idx];}
private:
SmartArray() {};
void *m_pmem;
int m_size;
};// использование
int main(int argc, char* argv[])
{
SmartArray arr(100);
arr[20] = 111;
arr.Realloc(); // тут происходит передвижка памяти, пусть даже в фоне дефрагментатором. Не забудем поставить крит секцию
char a = arr[20]; // и все равно мы обращаемя куда надо
return 0;
}
Составить ответ ||| Конференция ||| Архив
Ответы
E-mail: info@telesys.ru