"матрицы и выделение памяти..."


Страницы: 1
Пользователь: la_vie_in_rose
Сообщений: 2
Статус: Пользователь
Зарегистрирован:
1 октября 2008, 4:35
Был:1 октября 2008, 6:01
la_vie_in_rose
smsup
Дата: 1 октября 2008, 4:39 Сообщение № 1
как выделить память для матрицы?
Пользователь: DMT
Сообщений: 123
Статус: Программист
Зарегистрирован:
18 октября 2007, 2:35
Был:13 ноября 2017, 4:54
DMT
smsup
Дата: 1 октября 2008, 22:33 Сообщение № 2
Обычное выделение места под матрицу определённого размера:
Код на C++
  1. int matrix[10][10];
  2.  
При использовании обязательна ссылка на http://DMTSoft.ru


Динамическое выделения места под матрицу
Код на C++
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void main(){
  4. int n=10,n1=10,i;
  5. int **m=new int *[n];
  6. //заполнение Матрицы единицами
  7. for(i=0;i<n;i++){
  8. m[i]=new int[n1];
  9. for (int j=0;j<n1;j++) m[i][j]=1;
  10. }
  11. //печать Матрицы
  12. for(i=0;i<n;i++){
  13. for (int j=0;j<n1;j++) printf(" %d",m[i][j]);
  14. printf("\n");
  15. }
  16. }
  17.  
При использовании обязательна ссылка на http://DMTSoft.ru
Пользователь: inst
Сообщений: 1
Статус: Незримый
Зарегистрирован:
3 февраля 2009, 20:06
Был:3 февраля 2009, 20:15
inst
smsup
Дата: 3 февраля 2009, 20:13 Сообщение № 3
задаеш 2 счетчика и пока они бегают создаеш динамические обьекты) тока следи за тем куда и как будут располагаться елементы
Пользователь: kate&lena
Сообщений: 6
Статус: Пользователь
Зарегистрирован:
6 февраля 2009, 23:15
Был:17 февраля 2009, 0:35
kate&lena
smsup
Дата: 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