[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