Dobrý den,
programuji část programu, která alokuje dynamické pole o dvou rozměrech s tím, že samotnou alokaci chci ve funkci.
Funkce má jeden parametr (strukturu obsahující velikost matice a ukazatel na matici) a bude vracet int hodnotu. Naprogramoval jsem program který funguje, ale funkce vrací samotnou strukturu a já chci aby se změnila jen v parametru. Tuším, že se použijí ukazatelé, ale úplně nerozumím jejich použití. Předem díky za odpověď.
#include <stdio.h>
#include <stdlib.h>
/* Struktura obsahujici udaje o matici */
typedef struct Matrix
{
int rowc;
int colc;
int **mat;
}TMatrix;
/* Alokace matice */
TMatrix matrix_alloc(TMatrix matrix)
{
matrix.mat = (int**)malloc(matrix.colc * sizeof(int*));
for (int i = 0; i <= matrix.colc; i++)
matrix.mat[i] = (int*)malloc(matrix.rowc * sizeof(int));
return matrix;
}
int main()
{
TMatrix matrix =
{ // inicializace
.rowc = 6,
.colc = 6,
};
// alokace matice
matrix = matrix_alloc(matrix);
// test alokace
for (int i = 0; i < matrix.rowc; i++)
{
for (int j = 0; j < matrix.colc; j++)
{
matrix.mat[i][j]=i*j;
printf("%4d",matrix.mat[i][j]);
}
printf("\n");
}
return EXIT_SUCCESS;
}