Pointeur non initialisé

cs_arc59 Messages postés 32 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 24 mars 2011 - 25 sept. 2002 à 15:36
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 - 25 sept. 2002 à 23:36
J'ai créé un programme qui permet de lire les tag des fichiers MP3. Ce programme utilise une structure de pointeurs vers des char. Les tag d'un fichier MP3 sont souvent incomplet : il manque par exemple le nom de l'album. Je ne reserve donc pas d'espace pour le pointeur *album. Mon probleme est le suivant : lorsque j'affiche les infos, j'aimerai n'afficher que les pointeurs qui pointe vers un emplacement memoire reservé par mon programme. Comment faire ?

4 réponses

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
25 sept. 2002 à 17:05
-------------------------------
Réponse au message : Je ne suis pas sûr d'avoir tout compris mais initialise tous tes pointeurs à NULL. Ensuite :
if(ptr!=NULL)
afficher(*ptr)
else
afficher("info non disponible")
-------------------------------

J'ai créé un programme qui permet de lire les tag des fichiers MP3. Ce programme utilise une structure de pointeurs vers des char. Les tag d'un fichier MP3 sont souvent incomplet : il manque par exemple le nom de l'album. Je ne reserve donc pas d'espace pour le pointeur *album. Mon probleme est le suivant : lorsque j'affiche les infos, j'aimerai n'afficher que les pointeurs qui pointe vers un emplacement memoire reservé par mon programme. Comment faire ?
0
cs_arc59 Messages postés 32 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 24 mars 2011
25 sept. 2002 à 19:11
j'y ai pensé mais sa veut dire qu'il faut le faire à chaque fois que je crée une structure de ce type.

reexplication du probleme : comment savoir si un pointeur a été ou non initialisé avec une adresse ? En gros, a t'on reservé de l'espace pour ce pointeur avec malloc. Je cherche à le savoir pour ne pas afficher le contenu des pointeurs non initialisé et ainsi, évité l'affichage d'une erreur.

Merci
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
25 sept. 2002 à 19:39
Tu dois faire comme Golden Eye te l'as expliqué, pourquoi ca te déranges de mettre à NULL les pointeurs de ta structure ?
Sinon impossible de savoir si le pointeur est valide on non.
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
25 sept. 2002 à 23:36
-------------------------------
Réponse au message : maintenant que j'ai compris, je réitère ce que j'ai dit. Tu initialises ton ptr à NULL. Y a pas d'autre moyen(s)
-------------------------------

Tu dois faire comme Golden Eye te l'as expliqué, pourquoi ca te déranges de mettre à NULL les pointeurs de ta structure ?
Sinon impossible de savoir si le pointeur est valide on non.

-------------------------------
Réponse au message :
-------------------------------

j'y ai pensé mais sa veut dire qu'il faut le faire à chaque fois que je crée une structure de ce type.

reexplication du probleme : comment savoir si un pointeur a été ou non initialisé avec une adresse ? En gros, a t'on reservé de l'espace pour ce pointeur avec malloc. Je cherche à le savoir pour ne pas afficher le contenu des pointeurs non initialisé et ainsi, évité l'affichage d'une erreur.

Merci

-------------------------------
Réponse au message :
-------------------------------

-------------------------------
Réponse au message : Je ne suis pas sûr d'avoir tout compris mais initialise tous tes pointeurs à NULL. Ensuite :
if(ptr!=NULL)
afficher(*ptr)
else
afficher("info non disponible")
-------------------------------

J'ai créé un programme qui permet de lire les tag des fichiers MP3. Ce programme utilise une structure de pointeurs vers des char. Les tag d'un fichier MP3 sont souvent incomplet : il manque par exemple le nom de l'album. Je ne reserve donc pas d'espace pour le pointeur *album. Mon probleme est le suivant : lorsque j'affiche les infos, j'aimerai n'afficher que les pointeurs qui pointe vers un emplacement memoire reservé par mon programme. Comment faire ?
0
Rejoignez-nous