10
votes

Testez pour voir si je devrais libérer la mémoire ou non

Je passe un pointeur sur une matrice de caractère à ma méthode, ainsi qu'une valeur pour la hauteur réelle du tableau de caractères. Je suis en boucle pour voir si toutes les valeurs sont 0, si elles sont ensuite renvoyées 0, sinon renvoyer 1.

La méthode est utilisée comme test pour voir si je devrais libérer la mémoire ou non et définir le pointeur sur NULL si elle est plein de 0. La question dont j'ai eu est que le programme devrait avoir une mémoire "une certaine" à la fin, je n'ai donc aucune idée de savoir si ce ne le faisait pas correctement - et gdb je lutte avec immensément.

Merci de la lecture xxx


6 commentaires

Pourquoi incrémentez-vous Isine à la fin de la boucle ???


Vous devez incrémenter * charpointer pour que le pointeur irate dans tous les éléments de la matrice. Aussi le conseil de @Paul R.


désolé gars, je n'ai pas copié et coller de mon code, juste tapé, qui m'apprendrea: D


Trouvez une feuille de triche GDB et de vous familiariser avec certaines des commandes de base. Il est excessivé pour tester cette fonction, mais ce sera utile pour plus tard.


+1 pour demander spécifiquement à ne pas poster des solutions


+1: Qu'est-ce que Raj plus dit.


3 Réponses :


4
votes

Vous n'êtes pas d'incrémentation de charpointer


1 commentaires

@sbsp: votre version originale n'a pas montré cela. La version éditée montre maintenant que correctement.



5
votes

Lorsque vous dites "... Toutes les valeurs sont zéro ...", je supposais que vous vouliez dire que vous vouliez dire des valeurs binaires de zéro, plutôt que le personnage "0" ...

if (*(charPointer + i) != '\0) {


3 commentaires

Ou juste si (* charpointer) ou si (* charpointer! = 0)


Donc, si je vérifie le personnage 0, alors mon chemin était correct? En outre, je suis incrémenté le pointeur à la fin?


@sbsp: Oui, votre code vérifiait correctement le caractère zéro chiffre, avec l'exception possible qu'il ne comptait pas de caractère NULL (0x00) de terminaison (0x00) à la fin de la chaîne - supposant que votre tampon pointe sur une null. chaîne terminée ...



1
votes
  • Vous ne retournez pas 1 sinon toutes les valeurs sont 0
  • au lieu de régler isine et hors de la boucle, vous pouvez simplement retourner 1 de la condition

0 commentaires