CLASSE CREGISTRE

Signaler
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Messages postés
69
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
23 avril 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28011-classe-cregistre

Messages postés
69
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
23 avril 2009

Ah oui, en effet, cher collègue !

Avec ceci je pense que tout le monde sera renseigné sur l'utilisation du registre... (lol)!
Messages postés
129
Date d'inscription
dimanche 9 décembre 2001
Statut
Membre
Dernière intervention
12 janvier 2009

salu !
J'ai déjà posté une source du mm genre ! enfin, je crois que c'est le mm but !

http://www.cppfrance.com/code.aspx?ID=9370

A+
Messages postés
69
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
23 avril 2009

Ok, alors je vais refaire cela avec des allocation en mémoire, comme ça, plus de problème de taille.

ps : j'avais mis 80 car il me semble que le nom des valeurs et des clés est limité dans la base de registre à 80 caractères.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Petite correction, il n'y aura pas d'écrasement mémoire (vu que tu donne une taille max) mais tu risque de ne pas tout récupérer
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Dans la fonction : CRegistre::LireValeur()

faire memset(strValeur,0,sizeof(strValeur));
ne mettra à 0 que les 4 premier octets du buffer (sizeof(strValeur)=4 sur archi 32 bits car strValeur est un pointeur).

Pourquoi mettre arbitrairement une variable de la classe contenant la taille des valeurs à 80 ? Comme tu stocke des chaînes de caractères, tu peut calculer la taille avant la sauvagarde.

Cela pose un autre pb lors de la récup de valeur :
- si tu récupère une valeur de plus de 80 octets=>écrasement mémoire.
- si tu récupère une valeur de 10 octets, m_dwTailleValeur prend cette valeur et tu ne pourra pas stocker plus dans ModifierValeur par la suite.