Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon
objet, en effet dans mon programme je m'appercoit avec le debugeur que
mon pointeur pointe dans sur une adresse mais que celle ci est vide et
qu'il ne peut y accedée .
quelle teste est ce que je doit faire.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On Thu, 10 Mar 2005 23:00:52 +0100, Florian :
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas contraire, il s'agit d'un comportement indéfini, i.e. la norme ne dit rien, chaque compilateur a droit de faire comme il veut (y compris te faire livrer un café sucré par Chronopost).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ? Et si oui, ne peux-tu pas utiliser un pointeur intelligent, qui t'évitera bien des soucis ?
-- ;-)
On Thu, 10 Mar 2005 23:00:52 +0100, Florian
<florian.morineau2@9online.fr>:
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon
objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas
contraire, il s'agit d'un comportement indéfini, i.e. la norme ne dit
rien, chaque compilateur a droit de faire comme il veut (y compris te
faire livrer un café sucré par Chronopost).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ? Et si oui,
ne peux-tu pas utiliser un pointeur intelligent, qui t'évitera bien
des soucis ?
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas contraire, il s'agit d'un comportement indéfini, i.e. la norme ne dit rien, chaque compilateur a droit de faire comme il veut (y compris te faire livrer un café sucré par Chronopost).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ? Et si oui, ne peux-tu pas utiliser un pointeur intelligent, qui t'évitera bien des soucis ?
-- ;-)
Jean-Sebastien Mouret
Florian writes:
Bonjour
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet, en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
le bac français?
-- js
Florian <florian.morineau2@9online.fr> writes:
Bonjour
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon
objet, en effet dans mon programme je m'appercoit avec le debugeur que
mon pointeur pointe dans sur une adresse mais que celle ci est vide et
qu'il ne peut y accedée .
quelle teste est ce que je doit faire.
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet, en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
le bac français?
-- js
kanze
Fabien LE LEZ wrote:
On Thu, 10 Mar 2005 23:00:52 +0100, Florian :
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas contraire, il s'agit d'un comportement indéfini, i.e. la norme ne dit rien, chaque compilateur a droit de faire comme il veut (y compris te faire livrer un café sucré par Chronopost).
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet que si on les « lit » ou si un tel pointeur apparaisse comme temporaire (c-à-d dans le langage de la norme, lors d'une conversion de lvalue en rvalue, ou si le pointeur est un rvalue).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ?
Comme j'ai dit, c'est impossible à ne pas les avoir. Si tu fais « delete p », p devient un tel pointeur. Mais évidemment, il ne faut pas s'en servir par la suite. Et c'est une bonne technique de programmation de ne pas les laisser trainer où on risque de s'en servir.
Et si oui, ne peux-tu pas utiliser un pointeur intelligent, qui t'évitera bien des soucis ?
Ça dépend. Les pointeurs intelligents aident, mais ils ne libèrent quand même pas de la nécessité de penser. Un peu de reflexion sur la durée de vie des objets fait partie de la phase de conception, même dans les langages avec GC.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
On Thu, 10 Mar 2005 23:00:52 +0100, Florian
<florian.morineau2@9online.fr>:
Est ce qu'il est possible de vérifier si un pointeur pointe
sur un bon objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas
contraire, il s'agit d'un comportement indéfini, i.e. la norme
ne dit rien, chaque compilateur a droit de faire comme il veut
(y compris te faire livrer un café sucré par Chronopost).
Ce n'est pas tout à fait juste, et en fait, c'est impossible à
éviter de tels pointeurs. Le comportement indéfini n'interviet
que si on les « lit » ou si un tel pointeur apparaisse comme
temporaire (c-à-d dans le langage de la norme, lors d'une
conversion de lvalue en rvalue, ou si le pointeur est un
rvalue).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ?
Comme j'ai dit, c'est impossible à ne pas les avoir. Si tu fais
« delete p », p devient un tel pointeur. Mais évidemment, il ne
faut pas s'en servir par la suite. Et c'est une bonne technique
de programmation de ne pas les laisser trainer où on risque de
s'en servir.
Et si oui, ne peux-tu pas utiliser un pointeur intelligent,
qui t'évitera bien des soucis ?
Ça dépend. Les pointeurs intelligents aident, mais ils ne
libèrent quand même pas de la nécessité de penser. Un peu de
reflexion sur la durée de vie des objets fait partie de la phase
de conception, même dans les langages avec GC.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet
Un pointeur non-NULL doit pointer sur un objet ; dans le cas contraire, il s'agit d'un comportement indéfini, i.e. la norme ne dit rien, chaque compilateur a droit de faire comme il veut (y compris te faire livrer un café sucré par Chronopost).
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet que si on les « lit » ou si un tel pointeur apparaisse comme temporaire (c-à-d dans le langage de la norme, lors d'une conversion de lvalue en rvalue, ou si le pointeur est un rvalue).
Es-tu vraiment sûr d'avoir besoin d'utiliser un pointeur ?
Comme j'ai dit, c'est impossible à ne pas les avoir. Si tu fais « delete p », p devient un tel pointeur. Mais évidemment, il ne faut pas s'en servir par la suite. Et c'est une bonne technique de programmation de ne pas les laisser trainer où on risque de s'en servir.
Et si oui, ne peux-tu pas utiliser un pointeur intelligent, qui t'évitera bien des soucis ?
Ça dépend. Les pointeurs intelligents aident, mais ils ne libèrent quand même pas de la nécessité de penser. Un peu de reflexion sur la durée de vie des objets fait partie de la phase de conception, même dans les langages avec GC.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
marc.boyer.news
Florian wrote in message news:<d0qg5j$mab$...
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet,
En théorie: non. En pratique: on essaye d'utiliser des outils (références, pointeurs intelligents, RAII, valgrind) qui limitent les problèmes Et surtout: on fait attention
en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
Relire le programme avec attention.
Marc Boyer
Florian <florian.morineau2@9online.fr> wrote in message news:<d0qg5j$mab$1@apollon.grec.isp.9tel.net>...
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon
objet,
En théorie: non.
En pratique: on essaye d'utiliser des outils (références, pointeurs
intelligents, RAII, valgrind) qui limitent les problèmes
Et surtout: on fait attention
en effet dans mon programme je m'appercoit avec le debugeur que
mon pointeur pointe dans sur une adresse mais que celle ci est vide et
qu'il ne peut y accedée .
quelle teste est ce que je doit faire.
Est ce qu'il est possible de vérifier si un pointeur pointe sur un bon objet,
En théorie: non. En pratique: on essaye d'utiliser des outils (références, pointeurs intelligents, RAII, valgrind) qui limitent les problèmes Et surtout: on fait attention
en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
Relire le programme avec attention.
Marc Boyer
Fabien LE LEZ
On 11 Mar 2005 01:07:00 -0800, :
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet
que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des informations dessus (par exemple, si tu cherches à savoir s'il "pointe sur un bon objet").
-- ;-)
On 11 Mar 2005 01:07:00 -0800, kanze@gabi-soft.fr:
Ce n'est pas tout à fait juste, et en fait, c'est impossible à
éviter de tels pointeurs. Le comportement indéfini n'interviet
que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des
informations dessus (par exemple, si tu cherches à savoir s'il "pointe
sur un bon objet").
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet
que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des informations dessus (par exemple, si tu cherches à savoir s'il "pointe sur un bon objet").
-- ;-)
Olivier Azeau
del yahoo wrote:
Florian wrote in message news:<d0qg5j$mab$...
en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
Relire le programme avec attention.
Voire utiliser des outils qui permettent de détecter des accès mémoire indéfinis. Il en existe probablement sur toutes les plateformes où quelqu'un fait du C++ : LeakDiag, Valgrind, etc. (voire Purify ou BoundsChecker si on est riche)
marc.boyer@enseeiht.yahoo.fr.invalid del yahoo wrote:
Florian <florian.morineau2@9online.fr> wrote in message news:<d0qg5j$mab$1@apollon.grec.isp.9tel.net>...
en effet dans mon programme je m'appercoit avec le debugeur que
mon pointeur pointe dans sur une adresse mais que celle ci est vide et
qu'il ne peut y accedée .
quelle teste est ce que je doit faire.
Relire le programme avec attention.
Voire utiliser des outils qui permettent de détecter des accès mémoire
indéfinis. Il en existe probablement sur toutes les plateformes où
quelqu'un fait du C++ : LeakDiag, Valgrind, etc. (voire Purify ou
BoundsChecker si on est riche)
en effet dans mon programme je m'appercoit avec le debugeur que mon pointeur pointe dans sur une adresse mais que celle ci est vide et qu'il ne peut y accedée . quelle teste est ce que je doit faire.
Relire le programme avec attention.
Voire utiliser des outils qui permettent de détecter des accès mémoire indéfinis. Il en existe probablement sur toutes les plateformes où quelqu'un fait du C++ : LeakDiag, Valgrind, etc. (voire Purify ou BoundsChecker si on est riche)
James Kanze
Fabien LE LEZ wrote:
On 11 Mar 2005 01:07:00 -0800, :
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des informations dessus (par exemple, si tu cherches à savoir s'il "pointe sur un bon objet").
Tout à fait pour le problème ici. Mais j'avais l'impression que tu faisais une déclaration plus générale.
-- James Kanze home: www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
On 11 Mar 2005 01:07:00 -0800, kanze@gabi-soft.fr:
Ce n'est pas tout à fait juste, et en fait, c'est impossible à
éviter de tels pointeurs. Le comportement indéfini n'interviet
que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des
informations dessus (par exemple, si tu cherches à savoir s'il
"pointe sur un bon objet").
Tout à fait pour le problème ici. Mais j'avais l'impression que
tu faisais une déclaration plus générale.
--
James Kanze home: www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Ce n'est pas tout à fait juste, et en fait, c'est impossible à éviter de tels pointeurs. Le comportement indéfini n'interviet que si on les « lit »
... ce qui est forcément le cas si tu cherches à obtenir des informations dessus (par exemple, si tu cherches à savoir s'il "pointe sur un bon objet").
Tout à fait pour le problème ici. Mais j'avais l'impression que tu faisais une déclaration plus générale.
-- James Kanze home: www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34