Título: Puntero+indice Publicado por: Binary_Death en 18 Agosto 2010, 02:50 am Verán... mi duda es la siguiente.
Yo tengo el siguiente código: Código: #include <stdio.h> El cual funciona correctamente, sin complicación. La cosa es, yo defino un array de 5 elementos de tipo int, ok. Luego le asigno la dirección de inicio del array al puntero "point", el cual declaro. Y despues con un printf, imprimo el contenido de la dirección a la que apunta point más un desplazamiento de 1. Si cada celda de memoria ocupa un byte, lo normal seria que el +1 apuntara al siguiente byte de memoria. La cosa es que un tipo int ocupa 4 bytes... entonces, el puntero apuntaría al siguiente byte, donde no están contenidos los 4 bytes completos del siguiente elemento del array. Se me entiende?... en fin, agradecería que alguien pudiera explicarmelo. Saludos ^^ Título: Re: Puntero+indice Publicado por: Og. en 18 Agosto 2010, 03:06 am Al sumarle un 1 a un tipo int* realmente le sumaras 4 bytes.
si el puntero fuese a un char* al sumarle 1 si te moverias al siguiente byte. Código Prueba ese código. Saludos! Título: Re: Puntero+indice Publicado por: Binary_Death en 18 Agosto 2010, 03:30 am Muchas gracias, entendido a la perfección =)
Título: Re: Puntero+indice Publicado por: do-while en 18 Agosto 2010, 12:52 pm ¡Buenas!
Lo que ha dicho Og. es correcto, simplemente queria describir la regla general sobre puntero-deplazamiento: Si tenemos un tipo de dato dato_t, y un puntero a ese tipo de dato, dato_ptr, hacer dato_ptr + k equivale a apuntar a la posicion de memoria dato_ptr + k * sizeof(dato_t). ¡Saludos! |