free() invalid next size(fast) - C++ - Programmation
Marsh Posté le 12-10-2010 à 18:58:28
kranagard a écrit : Bonjours, je sais que ce message d'erreur est assez redondant et qu'on trouve beaucoup de postes sur le sujet mais apres avoir lu, relue et revérifié mon code je ne vois vraiment pas d'où ça vient.
|
pour allouer un tableau ce n'est pas
Code :
|
mais
Code :
|
et pour désallouer un new [], on fait un delete[] et non un free.
Edit : ton memset suivant fait un bel écrasement mémoire.
Marsh Posté le 12-10-2010 à 22:25:31
oh c'est pas bête du tout ça
ça fait un moment que je n'ai pas touché autre chose que du java du coups les allocation mémoire j'ai des trous... merci beaucoup en tout cas, je teste ça de suite
Marsh Posté le 12-10-2010 à 17:23:35
Bonjours, je sais que ce message d'erreur est assez redondant et qu'on trouve beaucoup de postes sur le sujet mais apres avoir lu, relue et revérifié mon code je ne vois vraiment pas d'où ça vient.
il s'agit d'un échange de messages entre client et serveur, ceux-ci ayant les mêmes sockets (une classe qui utilise directement les fonctions recv/ send...)
la connexion se passe bien, des premiers messages circulent sur le réseau sans soucis et d'un coups j'ai cette erreur. voici un bout de code précédant celle ci (entre l'allocation et le free en fait)
la socket récupère 4 octets en premier, un int contenant la taille du message qui arrive. puis alloue la bonne taille pour réceptionner le message.
enfin voila, ça fait un moment que je me prends la tête la dessus donc si quelqu'un a une idée je suis vraiment preneur...
se trouve en tête de mon bout de code la réception et le free de la réception d'un message précédant, celui ci contenant un ACK applicatif. de plus si je commente le free() qui plante l'appelle suivant d'un read plante avec la même erreur.
un signal est aussi émit (selon linux qui me l'affiche dans l'indicateur de message): SIGABRT
Message édité par kranagard le 12-10-2010 à 17:27:15