Salut,
J'ai un programme avec plusieurs threads....
L'une s'appelle "Init", elle réserve de la mémoire pour des pointeurs sur des tableaux de structures, puis elle initialise ses tableaux avec des valeurs lues dans un fichier....puis elle se termine
Une autre s'appelle "MainLoop", elle effectue des opérations selon les valeurs qui se trouvent dans les tableaux de structures initialisé par la tache "Init".
Mon problème, c'est qu'il me semble que les valeurs du tableaux ont été perdus....
La question est :
(…)
Forum Programmation.c++ memory corruption
salut tout le monde,
apres quelques semaines de debogage desesperé, je me tourne vers vous, j'ai un prgrammes qui me fais un "memory corruption", avec DDD j'aivu que c'etait sans les ligne ou j'avais free(), alors j'ai enlevé tout les free, mais il veut rien comprendre, voila ce qu'il m'affiche :
apres quelques semaines de debogage desesperé, je me tourne vers vous, j'ai un prgrammes qui me fais un "memory corruption", avec DDD j'aivu que c'etait sans les ligne ou j'avais free(), alors j'ai enlevé tout les free, mais il veut rien comprendre, voila ce qu'il m'affiche :
*** glibc detected *** ./main: malloc(): memory corruption: 0x081dfb18 ***
======= Backtrace: =========
/lib/libc.so.6[0xb778e6e1]
/lib/libc.so.6[0xb7790671]
/lib/libc.so.6(__libc_malloc+0x85)[0xb77920c5]
/usr/lib/libstdc++.so.6(_Znwj+0x27)[0xb792e477]
/usr/lib/libstdc++.so.6(_ZNSs4_Rep9_S_createEjjRKSaIcE+0x6b)[0xb7909feb]
/usr/lib/libstdc++.so.6(_ZNSs4_Rep8_M_cloneERKSaIcEj+0x38)[0xb790aba8]
/usr/lib/libstdc++.so.6(_ZNSs7reserveEj+0x48)[0xb790b718]
/usr/lib/libstdc++.so.6(_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi+0xa3)[0xb7904343]
/usr/lib/libstdc++.so.6(_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci+0x81)[0xb79091d1]
/usr/lib/libstdc++.so.6(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_+0x127)[0xb78f7367]
/usr/lib/libstdc++.so.6(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl+0x50)[0xb78f75d0]
/usr/lib/libstdc++.so.6(_ZNSolsEi+0xcd)[0xb78ffded]
./main[0x804f7ed]
./main[0x804f092]
./main(__gxx_personality_v0+0x39f)[0x804e0b3]
/lib/libc.so.6(__libc_start_main+0xdc)[0xb773ff9c]
(…)
Forum Programmation.c++ probleme d'include
Bonjour,
je compile sous Mandriva 2007(kernel 2.6.17-5, gcc 4.1.1) mon projet et j'ai les erreurs suivantes :
/usr/include/linux/time.h:12 error: redefinition of 'struct timespec'
/usr/include/time.h:122 error: previous definition of 'struct timespec'
et j'en ai plusieurs pour différente structure de time.h
Quelqu'un a t il une idée ??
merci
je compile sous Mandriva 2007(kernel 2.6.17-5, gcc 4.1.1) mon projet et j'ai les erreurs suivantes :
/usr/include/linux/time.h:12 error: redefinition of 'struct timespec'
/usr/include/time.h:122 error: previous definition of 'struct timespec'
et j'en ai plusieurs pour différente structure de time.h
Quelqu'un a t il une idée ??
merci
Forum Programmation.c++ passage d'un tableau de chaine à une fonction
Bonjour,
J'ai un tableau qui est déclare comme ça : char tbl[10][20]
je dois passer ce tableau à une fonction, comment faire ??
j'ai fait des essais de char **, mais rien de concluant...et je ne trouve pas d'aide dans mes bouquins....
Quelqu'un sait il comment faire ?
merci.
J'ai un tableau qui est déclare comme ça : char tbl[10][20]
je dois passer ce tableau à une fonction, comment faire ??
j'ai fait des essais de char **, mais rien de concluant...et je ne trouve pas d'aide dans mes bouquins....
Quelqu'un sait il comment faire ?
merci.
Forum Programmation.c++ undefined reference pthread_kill
Bonjour,
OS = Mandriva PowerPack 2007
voici le résultat de ma compilation :
undefined reference to 'pthread_kill (unsigned long, int)'
voici ma ligne de compilation :
g++ sample1.cpp -o sample1 -lpthread
Pouvez vous me dire pourquoi j'ai une erreur ?
Ce qui est bizarre c'est que si j'enlève le pthread_kill, les fonctions pthread_create, pthread_join fonctionne bien....
j'ai essayé pthread_cancel à la place de pthread_kill mais ça bloque mon programme, même si je paramètre mon thread avec pthread_setcancelstate et pthread_setcanceltype.
Pouvez (…)
OS = Mandriva PowerPack 2007
voici le résultat de ma compilation :
undefined reference to 'pthread_kill (unsigned long, int)'
voici ma ligne de compilation :
g++ sample1.cpp -o sample1 -lpthread
Pouvez vous me dire pourquoi j'ai une erreur ?
Ce qui est bizarre c'est que si j'enlève le pthread_kill, les fonctions pthread_create, pthread_join fonctionne bien....
j'ai essayé pthread_cancel à la place de pthread_kill mais ça bloque mon programme, même si je paramètre mon thread avec pthread_setcancelstate et pthread_setcanceltype.
Pouvez (…)
Forum Programmation.c++ Bibliothèque portable
Bonjour,
j'utilise wxWidgets en C++et allegro en C sur les stations style PC/MAC/SUN mais je suis à la recherche d'informations pour trouver une bibliothèque portable en C/C++ pour pouvoir avec un seul code programmer sur playstation/XBOX/Nintendo DS/ Wii...Merci de m'indiquer si cela existe ou à défaut les bibliothèque (gratuites?) pour développer des jeux ou applications sur ces plates-formes sachant que je souhaite éviter java pour des questions de performances et aussi d'expérience. Merci
Cordialement
j'utilise wxWidgets en C++et allegro en C sur les stations style PC/MAC/SUN mais je suis à la recherche d'informations pour trouver une bibliothèque portable en C/C++ pour pouvoir avec un seul code programmer sur playstation/XBOX/Nintendo DS/ Wii...Merci de m'indiquer si cela existe ou à défaut les bibliothèque (gratuites?) pour développer des jeux ou applications sur ces plates-formes sachant que je souhaite éviter java pour des questions de performances et aussi d'expérience. Merci
Cordialement
Forum Programmation.c++ Débat : conception objet
Bonjour,
ce débat est dans la lignée des Design Pattern donc à voir avant de répondre :-)
voila le projet. J'ai une classe abstrait Forme qui caractérise un objet graphique et à chaque objet j'associe un objet concret ToolManipulator qui dérive d'une classe abstraite Tool. Donc tout fonctionne bien mais j'ai deux choix qui s'offre à moi :
* l'objet Forme sait construite un objet ToolManipulator adapté à l'objet à manipuler sur l'écran mais cela oblige à modifier chaque classe (…)
ce débat est dans la lignée des Design Pattern donc à voir avant de répondre :-)
voila le projet. J'ai une classe abstrait Forme qui caractérise un objet graphique et à chaque objet j'associe un objet concret ToolManipulator qui dérive d'une classe abstraite Tool. Donc tout fonctionne bien mais j'ai deux choix qui s'offre à moi :
* l'objet Forme sait construite un objet ToolManipulator adapté à l'objet à manipuler sur l'écran mais cela oblige à modifier chaque classe (…)
Forum Programmation.c++ [Magick++] undefined reference to ...
bonjour tout le monde,
j'essaye de faire un petit programme pour decouvrir Magick++, mais je n'arrive pas a compiler, g++ (sous kdevelop) m'annonce quelques disaines d' "undefined reference to ..", j'ai beau cherché les .a à ajouter au complateur mais sans succes, voici quelques lignes de l'erreur :
j'essaye de faire un petit programme pour decouvrir Magick++, mais je n'arrive pas a compiler, g++ (sous kdevelop) m'annonce quelques disaines d' "undefined reference to ..", j'ai beau cherché les .a à ajouter au complateur mais sans succes, voici quelques lignes de l'erreur :
/usr/local/lib/libWand.a(drawing-wand.o): In function `NewDrawingWand':
/ImageMagick/wand/drawing-wand.c:6185: undefined reference to `GetMagickQuantumDepth'
/usr/local/lib/libWand.a(magick-image.o): In function `MagickResampleImage':
/ImageMagick/wand/magick-image.c:7849: undefined reference to `ResampleImage'
/usr/local/lib/libWand.a(magick-image.o): In function `MagickOptimizeImageLayers':
/ImageMagick/wand/magick-image.c:6575: undefined reference to `OptimizeImageLayers'
*
*
*
/usr/lib/libfontconfig.a(fcxml.o): In (…)
Forum Programmation.c++ Tester existence dossier
Bonjour,
Je recherche la méthode la plus clean, standard et portable, pour tester l'existence d'un dossier en C++. Et le créer s'il n'existe pas.
Je remercie par avance ceux qui m'aideront :).
Je recherche la méthode la plus clean, standard et portable, pour tester l'existence d'un dossier en C++. Et le créer s'il n'existe pas.
Je remercie par avance ceux qui m'aideront :).
Forum Programmation.c++ fichier d'en tête fich.h
Bonjour à tous
voici mon code
#ifndef _BD_H_ #define _BD_H_ using namespace std; class voiture { private: string nvhe; string couleur; string marque; int km; Personne *proprietaire; public: voiture(); ~voiture(); //voiture(); int rouler(int distance); void enregistrer_vehicule(voiture *V1); void afficher_vehicule(voiture *V1); Personne *get_proprietaire(voiture *V1); }; class Personne{ string nss; string nom; string prenom; string datenaissance; voiture *Veh; public:Personne(); void enregistrer(Personne *P); int viellir(); void afficher(Personne *P); void dormir(); void posseder_voiture(Personne *P1); int age(); };j'obtiens après compilation:
In file included from (…)
Forum Programmation.c++ librairie synamique compilé en C linké en c++
Bonjour,
J'ai du code qui compile en C (et pas en C++) j'en ai fait une librairie dynamique (avec fPIC pour la generation des .o et -shared pour la generation du .so).
Je veux intergrer ce .so dans un programme C++.
Mais cela marche pas j'ai des "Undefined reference to xxxx"
Ou xxxx sont des fonctions de mon .so
La où je comprends pas c'est que pour test j'ai generé deux .so de deux facon différentes. Une méthodes fonctionne , (…)
J'ai du code qui compile en C (et pas en C++) j'en ai fait une librairie dynamique (avec fPIC pour la generation des .o et -shared pour la generation du .so).
Je veux intergrer ce .so dans un programme C++.
Mais cela marche pas j'ai des "Undefined reference to xxxx"
Ou xxxx sont des fonctions de mon .so
La où je comprends pas c'est que pour test j'ai generé deux .so de deux facon différentes. Une méthodes fonctionne , (…)
Forum Programmation.c++ fichier d'en tête
Bonjour à tous
j'ai créé un projet contenant 3 fichiers, un fichiers essa.h,un fichiers essai.cpp et un fichier main.cpp.
Dans le fichiers essai.h j'ai déclaré les en tête des différentes classes ainsi que leurs méthodes et leurs attributs.
Mon problème se situe au niveau de 2 classes: la classe Personne et la classe voiture,chacune de ces classes a pour attribut une instance de l'autre ie que la classe personne a un attribut de type voiture,de même la classe voiture a (…)
j'ai créé un projet contenant 3 fichiers, un fichiers essa.h,un fichiers essai.cpp et un fichier main.cpp.
Dans le fichiers essai.h j'ai déclaré les en tête des différentes classes ainsi que leurs méthodes et leurs attributs.
Mon problème se situe au niveau de 2 classes: la classe Personne et la classe voiture,chacune de ces classes a pour attribut une instance de l'autre ie que la classe personne a un attribut de type voiture,de même la classe voiture a (…)
Forum Programmation.c++ utilisation d'anjuta, comment ajouter une option au compilateur
J'ai trouvé un bout de code qui m'interesse, apparemment il faut ajouter l'option "-lpthread" pour que ca marche, mais je ne sais pas comment faire ca dans anjuta, je n'ai trouvé aucun menu qui correspond ?
Autre question, ce pthread, c'est quoi, une api plus facile que la standard pour utiliser des threads ??
Autre question, ce pthread, c'est quoi, une api plus facile que la standard pour utiliser des threads ??
Forum Programmation.c++ base de données objet
je voudrais mettre en place une petite base de données objet comportant au maxi 4 entités.
je voudrais pour cela ne pas utiliser un SGBDO.
Mais écrire le code en langage c++ via les propriété de la programmation objet.
j'ai à ma disposition dev c++.
Ma machine n'est pas très performante(1Go de disque dur,64 Mo de Ram).
je voudrais mettre en place la base la plus élémentaire que possible.
je l'ai déjà commencé mais je me bloque au niveau de (…)
je voudrais pour cela ne pas utiliser un SGBDO.
Mais écrire le code en langage c++ via les propriété de la programmation objet.
j'ai à ma disposition dev c++.
Ma machine n'est pas très performante(1Go de disque dur,64 Mo de Ram).
je voudrais mettre en place la base la plus élémentaire que possible.
je l'ai déjà commencé mais je me bloque au niveau de (…)
Forum Programmation.c++ bibliotèque multiplateforme pour l'acquisition du son
Bonjour,
je cherche une bibliothèque c++ (ou c) pour acquérir du son depuis un micro et l'enregistrer en wav ou mp3.
J'ai besoin que cette bibliothèque soit libre et multiplateforme (win linux et mac).
j'ai trouvé différente choses mais rien que je n'arrive à faire marcher
openal ne semble pas permettre l'acquisition depuis un micro sous linux.
clam à l'air monstrueux pour mes besoins et je n'ai pas trouver beaucoup de doc.
portaudio permets seulement d'enregistrer dans un format raw. (…)
je cherche une bibliothèque c++ (ou c) pour acquérir du son depuis un micro et l'enregistrer en wav ou mp3.
J'ai besoin que cette bibliothèque soit libre et multiplateforme (win linux et mac).
j'ai trouvé différente choses mais rien que je n'arrive à faire marcher
openal ne semble pas permettre l'acquisition depuis un micro sous linux.
clam à l'air monstrueux pour mes besoins et je n'ai pas trouver beaucoup de doc.
portaudio permets seulement d'enregistrer dans un format raw. (…)
Forum Programmation.c++ String.h
Bonjour à tous.
j'utilise Dev c++ pour programmer en c++.
j'ai un problème au niveau de la gestion des chaines de caractères.
lorsque j'utilise la méthode du C qui consiste à déclarer les chaines de caractères comme des tableau de caractère ça va.
Mais lorsque j'inclus le fichier d'en tête String.h et que je déclare mes chaines de caractere avec le type string, a la compilation j'ai ce message:
"string" is not et type
aidez moi à m'y retrouver
merci (…)
j'utilise Dev c++ pour programmer en c++.
j'ai un problème au niveau de la gestion des chaines de caractères.
lorsque j'utilise la méthode du C qui consiste à déclarer les chaines de caractères comme des tableau de caractère ça va.
Mais lorsque j'inclus le fichier d'en tête String.h et que je déclare mes chaines de caractere avec le type string, a la compilation j'ai ce message:
"string" is not et type
aidez moi à m'y retrouver
merci (…)
Forum Programmation.c++ Constructeur, destructeur, et autre...
Bonjour à tous,
je vais peut-être passer pour un imbécile, mais je n'arrive pas vraiment à comprendre la gestion de la mémoire dynamique.
Supposons la fonction f1:
maitenant, regardons la fonction f2 qui (presque) la même chose:
Maintenant, mes questions:
* Comment se fait-il que dans un cas, je suis obligé d'appeler l'opérateur delete, et (…)
je vais peut-être passer pour un imbécile, mais je n'arrive pas vraiment à comprendre la gestion de la mémoire dynamique.
Supposons la fonction f1:
void f1()
{
Objet* obj= new Objet();
obj->print();
// et à la fin on désalloue:
delete obj;
}
maitenant, regardons la fonction f2 qui (presque) la même chose:
void f2()
{
Objet obj();
obj.print();
}
Maintenant, mes questions:
* Comment se fait-il que dans un cas, je suis obligé d'appeler l'opérateur delete, et (…)
Forum Programmation.c++ Créer une application cluster
Bonjour,
J'aimerais bien savoir si vous connaissez les informations et des exemples de développement d'une application en C++ ou perl pour Linux en mode cluster...
'C'est à dire que j'aimerais bien savoir comment créer une application qui gère entre les 1+n serveurs en cluster pour répondre la haute disponibilité, un peu comme load balancing...
Merci à vous
Fred
J'aimerais bien savoir si vous connaissez les informations et des exemples de développement d'une application en C++ ou perl pour Linux en mode cluster...
'C'est à dire que j'aimerais bien savoir comment créer une application qui gère entre les 1+n serveurs en cluster pour répondre la haute disponibilité, un peu comme load balancing...
Merci à vous
Fred
Forum Programmation.c++ popen / pclose
Bonjour,
Je cherche à faire la chose suivante en C++/C :
- executer une commande depuis mon code
- recuperer le code de retour
- recuperer stderr d'un coté
- recuperer stdout d'un autre coté
Pour le moment j'ai trouvé une solution avec popen+close qui me permet de recuperer le code de retour, en revanche, pour stderr et stdout, je ne vois pas comment les recuperer separement.
PS : on oubli le cat dans 2 fichiers, question d'optimisation
PS : (…)
Je cherche à faire la chose suivante en C++/C :
- executer une commande depuis mon code
- recuperer le code de retour
- recuperer stderr d'un coté
- recuperer stdout d'un autre coté
Pour le moment j'ai trouvé une solution avec popen+close qui me permet de recuperer le code de retour, en revanche, pour stderr et stdout, je ne vois pas comment les recuperer separement.
PS : on oubli le cat dans 2 fichiers, question d'optimisation
PS : (…)
Forum Programmation.c++ exit dans un programme multi-threadé
Bonjour,
en C++, j'ai un programme multi-threadé sur Linux, et un collègue m'a dit que si je fais un exit dans un thread, alors les autres threads risquent de faire un core dump.
(j'utilise la Native POSIX Thread Library je crois)
je ne crois pas qu'il ait raison pour plusieurs raisons :
- j'ai fait un test simple, et tous les threads se terminent apparemment proprement et en même temps dès que l'un d'eux fait un exit.
- le man (…)
en C++, j'ai un programme multi-threadé sur Linux, et un collègue m'a dit que si je fais un exit dans un thread, alors les autres threads risquent de faire un core dump.
(j'utilise la Native POSIX Thread Library je crois)
je ne crois pas qu'il ait raison pour plusieurs raisons :
- j'ai fait un test simple, et tous les threads se terminent apparemment proprement et en même temps dès que l'un d'eux fait un exit.
- le man (…)
Forum Programmation.c++ conversion d'un entier en chaîne?
bonjour,
je cherche comment faire une conversion d'un entier en une chaîne de caractères ou alors comment affecter un entier à une chaîne par exemple :
int numero;
char* chaine; comment affecter "numero" à "chaine"??
merci.
je cherche comment faire une conversion d'un entier en une chaîne de caractères ou alors comment affecter un entier à une chaîne par exemple :
int numero;
char* chaine; comment affecter "numero" à "chaine"??
merci.
Forum Programmation.c++ Visual C++ et Port RS232 sous LINUX
Bonjour,
Est-ce que quelqu'un aurait déjà codé sous Visual C++ des fonctions permettant l'ouverture + la fermeture + la lecture + l'écriture sur un PORT RS232, et ce sous LINUX ? J'ai déjà ce code sous Windows mais je suis supposé le porter sous LINUX et je ne sais pas du tout comment m'y prendre.
Merci d'avance pour votre aide.
Julien
Est-ce que quelqu'un aurait déjà codé sous Visual C++ des fonctions permettant l'ouverture + la fermeture + la lecture + l'écriture sur un PORT RS232, et ce sous LINUX ? J'ai déjà ce code sous Windows mais je suis supposé le porter sous LINUX et je ne sais pas du tout comment m'y prendre.
Merci d'avance pour votre aide.
Julien
Forum Programmation.c++ acces à la mémoire vidéo
Bonjour,
J'ai un vieux petit programme qui tournait sous DOS...Ce programme accède à la mémoire vidéo pour des questions de rapidités....
Peut on accéder à la mémoire vidéo sous Linux ? Si oui comment ?
Merci.
J'ai un vieux petit programme qui tournait sous DOS...Ce programme accède à la mémoire vidéo pour des questions de rapidités....
Peut on accéder à la mémoire vidéo sous Linux ? Si oui comment ?
Merci.
Forum Programmation.c++ Inclure un fichier objet dans la compilation
Bonjour,
J'essaye d'inclure un fichier objet ( file.h ) dans ma compilation avec gcc, et je n'ai rien trouvé dans le man.
Le fichier objet est dans le répertoire que la source et quand je fais :
gcc -o exec file.c
J'ai des message d'erreur car le compilateur ne trouve le fichier objet.
Merci de votre aide
J'essaye d'inclure un fichier objet ( file.h ) dans ma compilation avec gcc, et je n'ai rien trouvé dans le man.
Le fichier objet est dans le répertoire que la source et quand je fais :
gcc -o exec file.c
J'ai des message d'erreur car le compilateur ne trouve le fichier objet.
Merci de votre aide
Forum Programmation.c++ Impossible de lancer l'application compilée
Bonjour,
Je suis débutant en langage C. Je travaille sur une machine Solaris 9 en 64bits
Je compile mon code avec la commande :
gcc -Wall -v -c condor.c -o condor
pour avoir le maximum d'info et je n'ai pas de message d'erreur.
Ensuite je fais chmod +x de condor, et quand je fais ./condor pour executer le programme le système me signale qu'il ne peut démarrer le fichier binaire :
bash: ./condor: cannot execute binary file
Meric de votre
Je suis débutant en langage C. Je travaille sur une machine Solaris 9 en 64bits
Je compile mon code avec la commande :
gcc -Wall -v -c condor.c -o condor
pour avoir le maximum d'info et je n'ai pas de message d'erreur.
Ensuite je fais chmod +x de condor, et quand je fais ./condor pour executer le programme le système me signale qu'il ne peut démarrer le fichier binaire :
bash: ./condor: cannot execute binary file
Meric de votre