Другие языки программирования и технологии

Как динамически объявить массив заданной длины N?

Если в С++:
int* arr;
arr= new int[N];
В С# вообще без прооблем:
int[] arr=new int[N];
Александр Кобызев
Александр Кобызев
17 266
Лучший ответ
На C можно просто
int n=20; int a[n];
На C++ этот способ не входит в стандарт, но обычно для совместимости с C компиляторы C++ его допускают.
ЮГ
Юра Грачёв
22 474
Чистый С++
TYPE *pArr = new TYPE[ N ]; // выделение памяти N*sizeof(TYPE) + конструктор без параметров для каждого элемента
// TODO:
delete [ ] pArr; // деструктор для каждого элемента, оовобожление памяти

Для винды, конструкторы и деструкторы делать ручками.
TYPE *pArr = (TYPE *)VirtualAlloc(0, N * sizeof(TYPE), MEM_COMMIT, PAGE_READWRITE);
// TODO:
VirtualFree(pArr, 0, MEM_RELEASE);

Для винды, конструкторы и деструкторы делать ручками.
TYPE *pArr = (TYPE*)LocalAlloc(LPTR, N * sizeof(TYPE));
// TODO:
LocalFree(pArr);

Для винды, конструкторы и деструкторы делать ручками.
TYPE *pArr = (TYPE*)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, N * sizeof(TYPE));
// TODO:
HeapFree(hHeap, HEAP_ZERO_MEMORY, pArr);

на С - malloc(size_t) / calloc(size_t, size_t), free(void*)
Андрей Бижко
Андрей Бижко
21 360
для начала надо выделить память под массив.. .

unsigned char *Arry;

Arry=LocalAlloc(LPTR,размер массивы) ;

//работаем смассивом

LocalFree(Arry);

так это в Win32 на Си в С++ можно не мнгого по другому
какой язык?
думаю паскаль=\
const n=100;
а: array [1..n] of real;
пример:
type massiw=array[1..150] of real;
var x:^massiw;
begin
getmem(x,150*sizeof(real));-(память лучше выделять адекватно=))
блаблабла
freemem(x,150*sizeof(real));
end;
на си=)

float *a;
a=(float*)malloc(150*sizeof (float));
бла бла бла
free(a);
**
***frost_Kms ***
1 709
это для одномерного
создать int *Sum= new int[N];
удалить delete [] Sum;

для 2-мерного
int **A= new int*[N];
for(int i=0;i<n;i++){>=new int[N];}

for(int i=0;i<n;i++){>;}
delete [] A;

Похожие вопросы