: C, C++ new.
C .
void * malloc(size_t size);
malloc size .
int *pi = (int *) malloc(N * sizeof(int));
void *calloc(size_t nitem, size_t size);
calloc (nitems*size), .
void *realloc(void*ptr, size_t size);
realloc , ptr, size .
void free(void*ptr);
free , ptr. <stdlib.h>.
N int
int *pi = (int *) malloc(N * sizeof(int));
int *pi = new int[N];
, ,
free(pi); delete [] pi;
. int a[10][10];
int (*a)[10];
. int a[10][10];
int (*a)[10];
int **a;
M N.
1. malloc :
int **mas;
mas = (int **) malloc(M * sizeof(int *));
for (int i=0; i<N: i++)
mas[i] = (int *) malloc(N * sizeof(int));
:
for (i=0; i<N: i++)
free(mas[i]);
free(mas);
2. new delete :
int **mas = new int *[M]
for (int i=0; i<N; i++)
mas[i] = new int [N];
for (int i=0; i<N; i++)
delete [] mas[i];
delete [] mas;
-
int *pa=a;
pa - a[0],
*(pa+1) a[1]
a+i - a[i],
*(pa+i) - a[i].
, .
, , .
- , pa=a pa++.
, a=pa a++ .
-
- :
-, ;
int function (int *a, int n) {} - ;
int function (int a[20]) {} - .
int function (int a[], int n) {}
, . , . :
;
int function (int ma[100][100]){} int Ma[100][100], n*m.
|
|
, .. ; int func (int ma[][100]) {} =100
, ;
int func (int *ma) {} , .
, . int func (int **ma) {} - , int **ma . n*m, <= n*m <= n*m.