FOROS PROFESIONALES
WINDEV
,
WEBDEV
y
WINDEV Mobile
Inicio
|
Mensajes recientes
|
Conéctese...
|
Desconnectar
|
Español
Inicio
→
WINDEV 2024
→
Retourner un tableau d'objets dynamique
Retourner un tableau d'objets dynamique
Iniciado por no, 10,ago. 2004 06:10 - 1 respuesta
Conéctese…
no
#1
Publicado el 10,agosto 2004 - 06:10
Bonjour,
J'aimerai avoir des fonctions qui ne servent qu'à allouer dynamiquement des
objets ; mais lorsqu'on revient de ces fonctions, l'objet est automatiquement
libéré de la mémoire.
Voici les extraits de code:
---------------------------------------------
FleurCollection est une classe
fleurs est un tableau dynamique
FIN
---------------------------------------------------
Fleur est une classe
i est entier
FIN
PROCEDURE Constructeur(i est entier)
:i = i
----------------------------------------------------
PROCEDURE creerFleurs()
fc est une FleurCollection
mesFleurs est un tableau dynamique de 10 Fleur dynamique
i est un entier
POUR i=1 A 10
mesFleurs[i] = allouer une Fleur(i)
FIN
fc:fleurs = mesFleurs
RENVOYER fc
-----------------------------
PROCEDURE init()
roses est une FleurCollection dynamique
roses = creerFleurs()
--------------------------------
Le programme démarre init(), alloue correctement la mémoire, mais le destructeur
de fleurCollection est appelé juste après "RENVOYER fc", donc il semblerait
qu'on retourne fc et après on le libère. Résultat: je ne peux plus utiliser
la variable "roses" puisque je reçois le message:
"Erreur à la ligne 16 du traitement Procédure globale init.
L'objet dynamique roses a déjà été libéré."
J'ai Windev8 version 01-80310g.
Merci pour votre aide,
Sébastien
Informar
0
0
support.bdr
#2
Publicado el 10,agosto 2004 - 18:06
Il est normal que fc soit détruit avant RENVOYER fc. Tu as déclaré FC de manière
statique, la variable n'existera donc que dans la fonction. Techniquement
je pense que roses reçoit bien un tableau mais non alloué. Change fc en FleurCollection
dynamique, alloue-le et renvoie-le. Tant qu'il existera une référence vers
ce tableau, il ne sera pas libéré implicitement.
"Sébastien" <no@spam.com> wrote:
Bonjour,
J'aimerai avoir des fonctions qui ne servent qu'à allouer dynamiquement
des
objets ; mais lorsqu'on revient de ces fonctions, l'objet est automatiquement
libéré de la mémoire.
Voici les extraits de code:
---------------------------------------------
FleurCollection est une classe
fleurs est un tableau dynamique
FIN
---------------------------------------------------
Fleur est une classe
i est entier
FIN
PROCEDURE Constructeur(i est entier)
:i = i
----------------------------------------------------
PROCEDURE creerFleurs()
fc est une FleurCollection
mesFleurs est un tableau dynamique de 10 Fleur dynamique
i est un entier
POUR i=1 A 10
mesFleurs[i] = allouer une Fleur(i)
FIN
fc:fleurs = mesFleurs
RENVOYER fc
-----------------------------
PROCEDURE init()
roses est une FleurCollection dynamique
roses = creerFleurs()
--------------------------------
Le programme démarre init(), alloue correctement la mémoire, mais le destructeur
de fleurCollection est appelé juste après "RENVOYER fc", donc il semblerait
qu'on retourne fc et après on le libère. Résultat: je ne peux plus utiliser
la variable "roses" puisque je reçois le message:
"Erreur à la ligne 16 du traitement Procédure globale init.
L'objet dynamique roses a déjà été libéré."
J'ai Windev8 version 01-80310g.
Merci pour votre aide,
Sébastien
Informar
0
0
→ Volver a WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (versiones precedentes)
WINDEV (versiones precedentes)
WINDEV (versiones precedentes)
WEBDEV (versiones precedentes)
WEBDEV (versiones precedentes)
WINDEV Mobile (versiones precedentes)
WINDEV Mobile (versiones precedentes)
Reports & Queries
Reports & Queries
Irrelevante
Irrelevante
Herramientas
Herramientas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Búsqueda Tipo
Sólo temas
Todos los mensajes
Periodo Buscar
Cualquier fecha
Última hora
Última 24 horas
Última semana
Último mes
Último año
Cancelar
Vista previa del mensaje
Añadiendo una imagen
Importar una imagen desde una URL
Enviar una imagen desde un archivo de su disco
Arrastrar un archivo o click en "Examinar..."
o
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto