PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → pointeurs et Transfert()
pointeurs et Transfert()
Débuté par no, 10 aoû. 2004 20:59 - 3 réponses
Posté le 10 août 2004 - 20:59
Bonjour !

J'ai ce mutateur dans une classe qui me permet de changer la valeur de la
variable "tab".
tab contient un tableau dynamique d'objets MonObjet dynamique.

Cas 1:
PROCEDURE setTableau(tab)
:tab = tab

Cas 2:
PROCEDURE setTableau(tab)
:tab= allouer un tableau dynamique de dimension(tab) objet MonObjet dynamique
Transfert(&:tab, &tab, dimension(:tab))

Dans le Cas1, l'adresse de la variable :tab et celle de tab sont égales.
Dans le Cas2, il semblerait que le tableau tab n'est pas copié correctement.

En effet, si je manipule et traite les données par après, tout marche bien
avec le Cas1, mais dans le Cas2, on dirait qu'il manque des données (certaines
valeurs nulles), pourtant la source est la même pour les deux méthodes.

Merci de votre temps !

Sébastien
Posté le 11 août 2004 - 10:55
Sébastien <no@spam.com> a écrit:

Bonjour !

J'ai ce mutateur dans une classe qui me permet de changer la valeur
de la variable "tab".
tab contient un tableau dynamique d'objets MonObjet dynamique.

Cas 1:
PROCEDURE setTableau(tab)
tab = tab

Cas 2:
PROCEDURE setTableau(tab)
tab= allouer un tableau dynamique de dimension(tab) objet MonObjet
dynamique
Transfert(&:tab, &tab, dimension(:tab))


Dans le Cas1, l'adresse de la variable :tab et celle de tab sont
égales.
Dans le Cas2, il semblerait que le tableau tab n'est pas copié
correctement.

En effet, si je manipule et traite les données par après, tout marche
bien avec le Cas1, mais dans le Cas2, on dirait qu'il manque des
données (certaines valeurs nulles), pourtant la source est la même
pour les deux méthodes.

Merci de votre temps !

Sébastien


Rassures-moi, le nom du tableau 'Tab', c'est un exemple ou bien c'est le nom
que tu utilises vraiment.
Parce que dans ce dernier cas, tu as un conflit entre un nom de tableau et
un nom de constante.

Eric.
Posté le 11 août 2004 - 18:01
Le stockage en mémoire d'un tableau n'est pas forcément contigu, la fonction
transfer ne convient donc pas.

A+
florian26@ifrance.com

"Sébastien" <no@spam.com> wrote:


Bonjour !

J'ai ce mutateur dans une classe qui me permet de changer la valeur de la
variable "tab".
tab contient un tableau dynamique d'objets MonObjet dynamique.

Cas 1:
PROCEDURE setTableau(tab)
:tab = tab

Cas 2:
PROCEDURE setTableau(tab)
:tab= allouer un tableau dynamique de dimension(tab) objet MonObjet dynamique
Transfert(&:tab, &tab, dimension(:tab))

Dans le Cas1, l'adresse de la variable :tab et celle de tab sont égales.
Dans le Cas2, il semblerait que le tableau tab n'est pas copié correctement.

En effet, si je manipule et traite les données par après, tout marche bien
avec le Cas1, mais dans le Cas2, on dirait qu'il manque des données (certaines
valeurs nulles), pourtant la source est la même pour les deux méthodes.

Merci de votre temps !

Sébastien
Posté le 11 août 2004 - 18:08
On dirait que mon message ne s'est pas formaté correctement, voici le bon
exemple:

Cas 1:
PROCEDURE setTableau(tab)
:tab = tab

Cas 2:
PROCEDURE setTableau(tab)
:tab= allouer un tableau dynamique de dimension(tab) objet MonObjet dynamique
Transfert(&:tab, &tab, dimension(:tab))

Et c'est juste un exemple, effectivement, j'utilise pas vraiment le nom "tab"
cest juste pour rendre plus générique, j'utilise pas "MonObjet" non plus
! :-)

Merci !

Sébastien

"Eric LAURENT" <laurent.systel@wanadoo.fr> wrote:

Sébastien <no@spam.com> a écrit:

Bonjour !

J'ai ce mutateur dans une classe qui me permet de changer la valeur
de la variable "tab".
tab contient un tableau dynamique d'objets MonObjet dynamique.

Cas 1:
PROCEDURE setTableau(tab)
tab = tab

Cas 2:
PROCEDURE setTableau(tab)
tab= allouer un tableau dynamique de dimension(tab) objet MonObjet
dynamique
Transfert(&:tab, &tab, dimension(:tab))


Dans le Cas1, l'adresse de la variable :tab et celle de tab sont
égales.
Dans le Cas2, il semblerait que le tableau tab n'est pas copié
correctement.

En effet, si je manipule et traite les données par après, tout marche
bien avec le Cas1, mais dans le Cas2, on dirait qu'il manque des
données (certaines valeurs nulles), pourtant la source est la même
pour les deux méthodes.

Merci de votre temps !

Sébastien

Rassures-moi, le nom du tableau 'Tab', c'est un exemple ou bien c'est le

nom
que tu utilises vraiment.
Parce que dans ce dernier cas, tu as un conflit entre un nom de tableau

et
un nom de constante.

Eric.