Zdravim
Povedal som si ze si prejdem tuto knihu a nieco sa priucim.
Hned na zaciatku som narazil na problem s kompatibilitou.
Pouzivam GCC kompilator na linuxe a ked chcem vlozit premennu do funkcie ako pointer na 2d pole podla knihy vyhadzuje mi chybu.
Problem je v definicii
void Preklop(float *m, int n)
a potom volanie s 2d polom.
main.c:19:2: warning: passing argument 1 of 'Preklop' from incompatible pointer type [enabled by default] Preklop(a,pocet);
main.c:3:6: note: expected 'float *' but argument is of type 'float (*)[3]'
Kod:
#include <stdio.h>
void Preklop(float *m, int n)
/* preklopeni ctvercove matice n x n podle hlavni diagonaly */
{
int i,j;
float pom;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
pom=m[i*n+j]; m[i*n+j]=m[j*n+i]; m[j*n+i]=pom;
}
}
void main()
{
float a[3][3];
int pocet = 3;
Preklop(a,pocet);
return 0;
}
Vsade som sa stretol s definiciou podla prekladaca a preto by ma zaujimalo ako to ze kod podla knihy funguje s Dev C++ alebo Visual C++.
Viete mi nejako objasnit ten rozdiel?
Dakujem ;)