2012-04-05 4 views
1

J'ai un programme python qui appelle une fonction C. J'envoie des structures contenant des caractères mutables aux fonctions c et ma fonction c remplit la structure.*** glibc détectée *** python: libre(): invalide taille suivante (rapide):

classe myS (structure): champs = [("x", c_int), ("tampon", 100 * c_char)]

I envoyer à la fonction C et la fonction C remplit la valeur dans cette structure. Mon programme fonctionne très bien, mais après le retour, il renvoie une erreur

* glibc détecté * python: free(): taille suivante invalide (rapide):

exécution ultérieure du programme montre l'un des 3 erreurs suivantes sur peu de changement de code (comme l'impression "salut").

* glibc détecté * python: malloc(): taille suivante invalide (rapide):

* glibc détecté * python: libre(): taille suivante invalide (rapide):

défaut de segmentation

S'il vous plaît aidez-moi. Merci d'avance.

+0

en cas d'erreur malloc() mon programme ne s'exécute pas complètement – Sudip

Répondre

1

Vous avez corrompu l'espace mémoire, simplement en écrivant au-delà de la fin de la mémoire qui a été transmise à la fonction C mais, sans voir le code source, nous ne le saurons jamais avec certitude.

Ce message apparaît uniquement lorsque glib détecte que les informations de comptabilisation d'allocation de mémoire ont été corrompues.

Questions connexes