Pascal/Turbo Pascal - Aritmetica de punteros

 
Vista:

Aritmetica de punteros

Publicado por Raven (2 intervenciones) el 05/09/2006 08:19:10
Hola hace unos dias me pregunto si existe alguna forma de mover un puntero
en pascal si alquien sabe al respecto ???

Tambien me pregunto cual es la diferencia de un puntero a integer
y un puntero a array pongo un ejemplo a ver si me esplico

type Miarreglo= array [0..5] of integer;

var
P:^Miarreglo o P:^integer(y mover yo el puntero no hacer P^[1].. ect)

No se si me he explicado bien pero bueno gracias por cual quier opinion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Aritmetica de punteros

Publicado por Diego Romero (996 intervenciones) el 06/09/2006 16:35:24
No entendí bien lo que quieres hacer.
Un puntero a integer usando las estructuras que mencionas lo puedes usar para apuntar uno de los elementos del array, pero primero tienes que declarar una variable array.
O sea, si tienes
type Miarreglo= array [0..5] of integer;
de nada te sirve tenes un
var
P:^integer;
porque la declaración type solo declaras el tipo, no estás reservando memoria en ninguna parte, para ello deberías hacer también algo como:
var
M: Miarreglo;
pero si lo haces así ¿para qué necesitas el puntero si ya tienes la variable?.

Ahora bien, también podrías hacer algo como esto:
type Miarreglo= array [0..5] of integer;
var
P:^miarreglo;
y luego
new(P);
ahí estarías creando un puntero que apunta a un tipo Miarreglo, y puedes hacer algo como
P^[1]:=1;
El índice lo puedes cambiar por una variable si quieres u otro puntero a integer;
Digamos:
var
I:^integer;
y luego hacer algo como:
begin
new(P);
new(I);
I^:=1;
P^[I^]:=1;
writeln(P^[I^]);

Aunque sería lo mismo que hacer...
var
P:Miarreglo;
I: integer;
begin
I:=1;
P[I]:=1;
writeln(P[i]);
Solo que en este caso estarías trabajando con memoria estática.
No sé qué utilidad puede tener, alguna la tendrá, tú sabrás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar