1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include <stdio.h>
#include <stdlib.h>
int** initMatrix(int nLig, int nCol) {
printf("sizeof(int)=%lu\n", sizeof(int));
printf("sizeof(int*)=%lu\n", sizeof(int*));
printf("sizeof(int**)=%lu\n", sizeof(int**));
printf("lig=%d, col=%d\n", nLig, nCol);
int** tab;
size_t t=nLig * sizeof(*tab) + nLig * nCol * sizeof(**tab);
printf("alloc=%lu\n", t);
tab=malloc(t);
printf("tab=%lu\n", tab);
size_t off;
for(int i=0; i<nLig; i++) {
off=nLig + nCol * (i + nLig);
tab[i]=(int*)(tab + off);
printf("off=%lu, tab[%d]=%lu\n", off, i, tab[i]);
for(int j=0; j<nCol; j++)
tab[i][j]=i + j;
}
return tab;
}
int main() {
int l=3, c=5;
int **tab=initMatrix(l, c);
for (int i=0; i < l; i++) {
for (int j=0; j < c; j++)
printf("%lu tab[%d][%d]=%d\n", &tab[i][j], i, j, tab[i][j]);
}
} |
Partager