Erreur memcpy()
romanzo_cirminale
-
loupius -
loupius -
Bonjour,
J'ai code un serveur en c++ que je fait tourner sans probleme en local, Je l'ai ensuite mis sur un serveur sans rien changer au code.
Le probleme c'est que maintenant mon programme ne marche plus et j'ai un segmentation fault du a un memcpy(), et je ne comprend pas du tout pourquoi!
Voici mon code, j'utilise une bilbiotheque MagickWand permettant de manipuler des images.
Code : C++
unsigned char* GetSlice(char slice, int num, size_t * x, bool flip,bool rotate)
{
//........
//magick_wand est l'objet correspondant a mon image
unsigned char* tmp = MagickGetImageBlob(magick_wand,x); // Returns the BLOB (Binary Large OBject) of the current active image
unsigned char * ret = new unsigned char[*x];
memcpy(ret,tmp, *x); // l'erreur apparait a l'appel de cette fonction
MagickRelinquishMemory(tmp);
magick_wand = DestroyMagickWand(magick_wand);
return ret;
Ce que je ne comprend pas c'est pourquoi mon programme marchait en local et ne marche plus sur mon serveur.
Merci de votre aide.
J'ai code un serveur en c++ que je fait tourner sans probleme en local, Je l'ai ensuite mis sur un serveur sans rien changer au code.
Le probleme c'est que maintenant mon programme ne marche plus et j'ai un segmentation fault du a un memcpy(), et je ne comprend pas du tout pourquoi!
Voici mon code, j'utilise une bilbiotheque MagickWand permettant de manipuler des images.
Code : C++
unsigned char* GetSlice(char slice, int num, size_t * x, bool flip,bool rotate)
{
//........
//magick_wand est l'objet correspondant a mon image
unsigned char* tmp = MagickGetImageBlob(magick_wand,x); // Returns the BLOB (Binary Large OBject) of the current active image
unsigned char * ret = new unsigned char[*x];
memcpy(ret,tmp, *x); // l'erreur apparait a l'appel de cette fonction
MagickRelinquishMemory(tmp);
magick_wand = DestroyMagickWand(magick_wand);
return ret;
Ce que je ne comprend pas c'est pourquoi mon programme marchait en local et ne marche plus sur mon serveur.
Merci de votre aide.
A voir également:
- Erreur memcpy()
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Corriger l'erreur 0x80070643 de la mise à jour KB5034441 de Windows 10 - Accueil - Windows
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
1 réponse
Toujours la même histoire avec les 'segment fault', un coup ça marche, un coup ça marche pas !
Il y a 99 % de chances pour que l'espace précédemment alloué ne soit pas suffisant lors de la recopie.
Peut-être aussi un problème 16-32-64 bits si le programme n'a pas été écrit de manière standard ?
Bonne continuation.
Il y a 99 % de chances pour que l'espace précédemment alloué ne soit pas suffisant lors de la recopie.
Peut-être aussi un problème 16-32-64 bits si le programme n'a pas été écrit de manière standard ?
Bonne continuation.
normalement pas de probleme j'ai compile mon programme en 32 bits et mon serveur utilise un 32 bits.
Apres comment savoir si l'espace alloue est suffisant ou non?
Bonne continuation.