Esto es probablemente simple, pero intento intentar entender mejor los punteros. Digamos que tengo una estructuraC++ Pregunta de puntero de estructura
struct Person{
char Name[20];
char ID[15];
char Address[50];
char Number[15];
};
y Digamos que tengo un montón de ellos almacenados en la memoria como uno después del otro. así que ahora declaro un nuevo puntero a la estructura.
struct Person *ptr;
¿Comenzará este puntero en la PRIMERA entrada? (también conocido como el primer "Nombre") y cuando lo itere (también conocido como ptr ++) irá al próximo STRUCT o al siguiente "ingreso" también conocido como nombre -> ID ---> Dirección
Así que digamos Im en la primera entrada, por ejemplo, y los datos es:
Jason Adams
111222333
111 Fake Drive
55555551000
y la segunda entrada es
Matt Johns
111555333
555 Derp lane
1000022434
ahora iterar el ptr (ptr ++) será el punto ptr a segunda struct (el uno con mate Johns) o señalará a Jason Adams "ID"
Espero que esto tenga sentido?
Oh, si yo quisiera llegar a la próxima entrada, usaría ptr + sizeof (Person)? o "sabe" ir a la segunda estructura cuando solo usa ptr ++ –
No. Cada vez que agrega un valor integral a un puntero, implícitamente multiplica el valor por 'sizeof ()'. Si agrega 1 a un puntero (ya sea por 'ptr ++' o 'ptr + n'), avanza implícitamente '' uno de los elementos apuntados ''. Si agrega 'sizeof (Person)' a 'Person *', avanzaría mucho más de una entrada. –
OH gotcha, gracias. eso es lo que pensé que era pero no estaba 100% seguro. –