"матрицы и выделение памяти..."
Страницы: 1
Пользователь: la_vie_in_rose Сообщений: 2 Статус: Пользователь Зарегистрирован: 1 октября 2008, 4:35 Был:1 октября 2008, 6:01 | Дата: 1 октября 2008, 4:39 Сообщение № 1 |
как выделить память для матрицы? |
Пользователь: DMT Сообщений: 123 Статус: Программист Зарегистрирован: 18 октября 2007, 2:35 Был:13 ноября 2017, 4:54 | Дата: 1 октября 2008, 22:33 Сообщение № 2 |
Обычное выделение места под матрицу определённого размера:
Динамическое выделения места под матрицу
|
Пользователь: inst Сообщений: 1 Статус: Незримый Зарегистрирован: 3 февраля 2009, 20:06 Был:3 февраля 2009, 20:15 | Дата: 3 февраля 2009, 20:13 Сообщение № 3 |
задаеш 2 счетчика и пока они бегают создаеш динамические обьекты) тока следи за тем куда и как будут располагаться елементы |
Пользователь: kate&lena Сообщений: 6 Статус: Пользователь Зарегистрирован: 6 февраля 2009, 23:15 Был:17 февраля 2009, 0:35 | Дата: 16 февраля 2009, 23:23 Сообщение № 4 |
[B]Код на С++ для выделения и высвобождения памяти для одно-, дву-, трех- мерных массивов #include <conio.h> #include <stdio.h> #include <malloc.h> #include <stdlib.h> int *V; int ***B; int **VA21; //----------creates an array(выделение памяти)-------------------------- void Alloc(int size1,int size2,int size3) { int i,j,k; V=(int*)malloc(size1*size2*size3*sizeof(int)); //одномерный массив VA21=(int**)malloc(size2*sizeof(int)); //двумерный массив for(i=0; i<size2; i++) VA21[i]=(int*)malloc(size2*sizeof(int)); B=(int***)malloc(size1*sizeof(int)); //трехмерный массив for(i=0; i<size1; i++) B[i]=(int**)malloc(size2*sizeof(int)); for(j=0; j<size2; j++) for(k=0; k<size3; k++) B[j][k]=(int*)malloc(size3*sizeof(int)); } //----------delete an array(высвобождение памяти)-------------------------- void FreeMemory(int size1,int size2,int size3) { int i,j,k; for(j=size2-1;j>0;j--) for(k=size3-1;k>0;k--) free(B[j][k]); for(i=size1-1;i>0;i--) free(B[i]); for(i=0; i<size2; i++) free(VA21[i]); free(V); free(B); free(VA21); } |
Страницы: 1