Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Dudas con los útiles punteros

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Dudas con los útiles punteros Responder citando

Hola Soy David y estoy un poco mosqueado...

Resulta que estoy haciendo un programilla para entretenerme con el Builder (con el 3). Un juegecillo que cada vez que haces determinada cosa tira de memoria que es un gusto. El tema es que en la unit principal del programa, declaro un puntero despues de las incluir bibliotecas, algo así:
(...)
#include "unit5.h"
#include "unit6.h"
bool arriba_abajo_derecha_izquierda[4]={false,false,true,false};
int tope=1,grosor=30,last_dir=2;
TPoint *p/*<- ese es el puntero*/,semi_aleatorio;
(...)

y para manipularlo después trasteo con new y delete donde me hace falta por ejemplo dentro de un timer:

(...)
TPoint *aux;
aux=new TPoint[tope];
for(int i=0;i<tope;i++)
aux[i]=p[i];
delete [] p;
p=new TPoint[tope+1];
for(int i=0;i<tope;i++)
p[i+1]=aux[i];
p[0]=punti;
tope++;
(...)

También lo manipulo a placer cuando suceden otros eventos....

¿Los datos a los cuales accede atraves de ese puntero son siempre los mismos?¿Si los modifico en un evento deberían modificarse globalmente? ¿Debería declarar el puntero globalmente de otra manera?¿Quizas en el *.h? Estoy mosqueado porque a veces parece colarse algo raro... Pero como trabajo con numeros aleatorios y graficos no esto seguro de la causa.

Gracias.

Volver arriba
Mensaje    Asunto: Dudas con los útiles punteros Responder citando

¿Te has planteado cómo declarando un puntero a un tipo de objeto acabas guardando en él en lugar de la dirección de un objeto un vector de estos? Quizás eso sea el problema.

T *ptr;
ptr=new T[tope] ¿¿¿¿¿?????
delete[] ptr;

Volver arriba
Mensaje    Asunto: Dudas con los útiles punteros Responder citando

El problema que planteaba no tenía que ver con la forma de declarar las variables, o usar el método de reserva dinamica de memoria. De hecho esa manera de hacerlo esta como ejemplo en la ayuda del Builder. Mi problema era DONDE declarar el puntero para que fuera siempre el mismo en toda la ejecución del programa...

El programa que ya he probado algunas veces parece que con el tiempo acaba haciendo que el se vuelva sistema inestable, parece que toca posiciones de memoria que usa Windows o algo así.(A lo mejor es porque uso demasiadas veces new y delete)

Acabo de leer en un manual que si uso new, la variable con la que lo he usado "sobrebirá" hasta que se borre con delete o termine la ejecución (aunque lo haga dentro de una función).

El problema es DONDE declararías tu el puntero.

Gracias por tu respuesta.

David

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.