PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV 2024
→
Retourner un tableau d'objets dynamique
Retourner un tableau d'objets dynamique
Started by no, Aug., 10 2004 6:10 AM - 1 reply
Connect yourself…
no
#1
Posted on August, 10 2004 - 6:10 AM
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
Report
0
0
support.bdr
#2
Posted on August, 10 2004 - 6:06 PM
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
Report
0
0
→ Go back to WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WINDEV (earlier versions)
WEBDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Reports & Queries
Off-topic
Off-topic
Tools
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text