linux user group brescia

immagine del castello

Archivio della mailing list

Array e malloc

Maurizio Paolini paolini a dmf.bs.unicatt.it
Mer 8 Maggio 2002 17:30:00 UTC
> From: Bauno <bauno a inwind.it>
> Subject: Re: Array e malloc
>
> Comunque basta provare a compilare queste 5 righe:
>
> -------begin-----------
> #include <iostream.h>
>
> void foo (int ** bar) {
>         cout << bar[0][0] << endl;
>
> }
>
> int main (void) {
>
>         int a[10][10];
>
>         a[0][0] = 1;
>
> 	foo(a);
>
> 	return 0;
> }
> -------------end-------------
>
> Ottengo, dal compilatore:
>
>
> test.c: In function `int main ()':
> test.c:22: cannot convert `int (*)[10]' to `int **' for argument `1' to
> `foo (int **)'
>
> Per la cronaca, la dichiarazione corretta รจ:
>
> void foo (int (*bar)[10]) {
>         cout << bar[0][0] << endl;
>
> }

OK, questo comunque lo capisco (anche dal punto di vista pratico) poiche'
la funzione non puo' accedere all'elemento [i][j] se non sa perlomeno
quanto sono lunghe le righe, visto che la disposizione in memoria e'
brutalmente tabellare.

Beh, cosi' finalmente mi sono chiarito le idee sull'uso delle matrici in C,
grazie 1000!

mp



Maggiori informazioni sulla lista Lug