/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

arrays con punteros

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Naitmeir



Registrado: 20 Nov 2007
Mensajes: 15
Ubicación: Barcelona

MensajePublicado: 08/12/2007 6:06 pm
Título: arrays con punteros

Por que en el siguiente codigo se imprimen todos los valores iguales?


Código:
int main()
{

int vect[10],mat[3][5],*p;

p = &vect[0];
printf ("%d\n", *(p+2));   //se imprimira vect [2]

p = &mat[0][0];
printf("%d\n",*(p+2));      //se imprimira vect [0][2]
printf("%d\n",*(p+4));      //se imprimira vect [0][1]
printf("%d\n",*(p+5));      //se imprimira vect [1][0]
printf("%d\n",*(p+12));      //se imprimira vect [2][2]

}


Compilo con MV6.0

Un saludo
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3842
Ubicación: Mexico

MensajePublicado: 09/12/2007 7:29 am
Título:

Eso sucede porque no le das un valor inicial a cada uno de los elementos de los dos arrays, cuando esto sucede los valores almacenados son "no definidos" o "basura".

Solo tienes que cambiar las declaraciones de los arrays a, por poner un ejemplo:
Código:
int vect[10] = {
   0, 1, 2
   3, 4, 5,
   6, 7, 8,
   9
};

int mat[3][5] = {
   {  0,  1,  2,  3,  4},
   { 10, 11, 12, 13, 14},
   { 21, 22, 23, 24, 25}
};

int *p;


Por ultimo para recorrer el array de arrays "mat[3][5]" el tipo correcto del puntero debe ser "int (*)[5]" ya que no es valido "saltar" de un objeto a otro (aun cuando en la practica el compilador lo permita).

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com