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

error con un puntero a puntero - matrices

Estas en el tema de error con un puntero a puntero - matrices en el foro de C/C++ en Foros del Web. Buenas, Estoy peleandome con el tema de matrices en C. Encontré un manual muy bueno al parecer y empecé a practicar un poco. Alguien puede ...
  #1 (permalink)  
Antiguo 25/07/2007, 15:48
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 8 meses
Puntos: 1
error con un puntero a puntero - matrices

Buenas,

Estoy peleandome con el tema de matrices en C.

Encontré un manual muy bueno al parecer y empecé a practicar un poco.

Alguien puede decirme porque el compilador me tira error de incompatibilidad de tipos cuando hago lo sig:

//COMIENZO CODIGO

float mat[3][4], **p;
**p = mat; //aca se da el error

//FIN CODIGO

Deseo hacerlo de esta manera para despues poder acceder a los elementos de la matriz segun lo hace este manual. Supuestamente accederia como sigue:

*p es el valor de mat[0]
*(p+1) es el valor de mat[1]
**p es el valor de mat[0][0]
**(p+1) es el valor de mat[1][0]
*(*(p+1)+1) es el valor de mat[1][1] --> esto es lo q deseo usar, ya que sustituyo los unos por las coordenadas y debería poder acceder a los elementos de la matriz.

Alguna ayuda?
  #2 (permalink)  
Antiguo 26/07/2007, 11:47
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 3 meses
Puntos: 22
Re: error con un puntero a puntero - matrices

Hola chelix.

Los elementos de mat no son elementos de tipo puntero a float (float*) , sino que estos son a su vez matrices de 4 elementos de tipo float (float[4]), por lo que lo correcto es que declares a p como:

float (*p)[4]; // ojo con los parentesis que son necesarios
p es un puntero a una matriz de 4 elementos de tipo float.

Saludos.
  #3 (permalink)  
Antiguo 31/07/2007, 15:38
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: error con un puntero a puntero - matrices

Gracias por la respuesta,

llegue a la conclusion de que el manual del cual estuve aprendiendo tenia un error en algunos ejemplos.

en lugar de poner

**p = mat;

tuve q poner

p = mat;

y la cosa anduvo sin problemas.

Gracias
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 09:18.