Foros del Web » Programación para mayores de 30 ;) » C/C++ »

error C2664:

Estas en el tema de error C2664: en el foro de C/C++ en Foros del Web. Hola gente, quiero pasar una variable por referencia y me da este error: error C2664: 'inicializarCanti' : cannot convert parameter 1 from 'float [20][4]' to ...
  #1 (permalink)  
Antiguo 04/07/2008, 08:29
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
error C2664:

Hola gente, quiero pasar una variable por referencia y me da este error:

error C2664: 'inicializarCanti' : cannot convert parameter 1 from 'float [20][4]' to 'float *[][4]'

les paso el codigo:

void inicializarCanti(float * cant[20][4]);
void main()
{
float cant[20][4];

inicializarCanti(cant);
}
void inicializarCanti(float * cant[20][4])
{
int j,i;

for(i=1;i<=20;i++)
{
for(j=1;j<=4;j++)
{
cant[i][j]=0;
}
}
}

Muchisimas gracias!
  #2 (permalink)  
Antiguo 04/07/2008, 08:35
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: error C2664:

Fijate que para pasar la variable por referencia, tienes que mandar el puntero a la misma.
El error

Cita:
cannot convert parameter 1 from 'float [20][4]' to 'float *[][4]'
dice que estas enviando un float[20][4] por un lado donde entra un float*[20][4].
Fijate poniendo un & en el envio como en:
Código:
void main()
{
	float cant[20][4];

               inicializarCanti(&cant);
}
Igualmente, en C/C++ los arrays ya son referencias y siempre se pasan por referencia :). O sea, su nombre es una referencia al array de verdad.
Suerte!
__________________
Saludoss
Guille
  #3 (permalink)  
Antiguo 04/07/2008, 08:44
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: error C2664:

Gracias!! era eso
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.