[C con Clase] Problema con sizeof

Pau Manent pmb.manent en gmail.com
Vie Sep 3 21:06:24 CEST 2010


Buenas noches a todos,

Primero agradecer todo el trabajo y empeño dedicado para realizar este 
fantastico web.
Les escribo porque tengo un problema con el sizeof:
     Yo quiero hacer una función que me diga cuantas filas y columnas 
tiene una matriz. Para eso uso el operador sizeof. El codigo que uso es
         f=sizeof A[0]/sizeof(int);//filas totales
         c=sizeof A/sizeof A[0];//columnas totales
Estas lineas funcionan perfectamente en el main, pero al introducirlas 
en una función no da buenos resultados. El codigo completo que uso para 
comprovar el error es

#include <iostream>

using namespace std;

#define cmax 10
#define fmax 10

void sizematrix (int mat[cmax][fmax], int &c, int &f);

int main(){
    int A[cmax][fmax];
    int c, f;

    sizematrix(A,c,f);
    cout<<"filas = "<<f<<", columnas = "<<c<<endl;//esto corresponde a 
la funcion sizematrix

    f=sizeof A[0]/sizeof(int);//filas totales
    c=sizeof A/sizeof A[0];//columnas totales
    cout<<"filas = "<<f<<", columnas = "<<c<<endl;//esto corresponde al main

system("pause");
}


void sizematrix (int mat[cmax][fmax], int &c, int &f){
       f=sizeof mat[0]/sizeof(int);//files totals
       c=sizeof mat/sizeof mat[0];//columnes totals
}

El caso es que el main me dice que la matriz es de 10X10, pero la 
función me dice que es de 10X0. He comprovado toda la sintaxis y también 
he provado distintas formas de hacer lo mismo, pero sin resultados.
Agradezco de antemano cualquier sugerencia.

Pau





Más información sobre la lista de distribución Cconclase