CLASSE CREGISTRE

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 6 déc. 2004 à 12:23
bobbyantho Messages postés 69 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 avril 2009 - 13 déc. 2004 à 20:21
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

bobbyantho Messages postés 69 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 avril 2009
13 déc. 2004 à 20:21
Ah oui, en effet, cher collègue !

Avec ceci je pense que tout le monde sera renseigné sur l'utilisation du registre... (lol)!
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
13 déc. 2004 à 15:55
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+
bobbyantho Messages postés 69 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 23 avril 2009
7 déc. 2004 à 13:47
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.
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 déc. 2004 à 12:25
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
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 déc. 2004 à 12:23
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.
Rejoignez-nous