Piszę program na zajęcia z C i mam problem z przekazywaniem dynamicznej tablicy do funkcji która ma dodawać dwie tablice.
Mam taką oto funkcję
void Add2Arrays(long double **temp,const long double **tab1,const long double **tab2,int dim)
{
int k;
int i,j;
for(i=0;i<dim;i++)
{
for(j=0;j<dim;j++)
{
//*(*(temp +i) +j) = *(*(tab1 +i) +j) + *(*(tab2 +i) +j);
temp[i][j] = tab1[i][j] + tab2[i][j];
//printf("%lf %lf %lf \n",temp[i][j],tab1[i][j],tab2[i][j]);
}
}
}
Wywołuję ją tak:
Add2Arrays(t,matrixA,matrixB,dimension);
po powrocie z funkcji wyświetlam zawartość tablicy i pojawiąją się głupoty.
Dlatego zacząłem sprawdzać co jest wpisywane do tablicy tym printefem wewnątrz funkcji. Co się okazuje? Już tam zarówno temp, jak i tab1 i tab2 wewnątrz pętli są głupotami.
Dlaczego tak się dzieje? Jak to naprawić żeby działało?
Dorzucam jeszcze definicję jak alokuję tablice.
long double** AllocateMatrix(int sizeofTab)
{
long double **tab;
tab = (long double**)calloc(sizeofTab , sizeof(long double*));
if(tab != NULL)
{
int i;
for(i = 0;i<sizeofTab;i++)
{
*(tab + i) = (long double *) calloc( sizeofTab,sizeof(long double) );
}
}
return tab;
}
Dziękuję za pomoc i pozdrawiam.