Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1448 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  pb de memoire (je crois)...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb de memoire (je crois)...

n°1016280
Kineas
Posté le 17-03-2005 à 16:43:44  profilanswer
 

Voila j'ai un problème bizare : je travaille sur un fichier texte pour faire un certain traitement mais lorqu'il y a trops d'elements dans le fichier texte (15 mots en l'occurence) j'ai une segmentation fault!
En fait dans ce programme je reserve de multiples fois de la place pour des tableaux de chaine en faisant :  
         tabTemp[i]=(char *)malloc(sizeof(char[27]));
et je declare aussi des tableaux qui ont plusieurs milliers d'elements !
 
Le truc est que ma segmentation fault intervient a un endroit tres bizare du code et j'essaye de debugger depuis un bon moment deja mais je n'arrive  vraiment pas a comprendre ! Je me demandais si ca pouvait venir d'un probleme de memoire (par ex si je reserve de la palce pour une string que j'ai besoin de conserver et si longtemp apre je rereserve de la place est-ce que le programme peut ecraser une valeur dont je me resers apres ?  :bounce:

mood
Publicité
Posté le 17-03-2005 à 16:43:44  profilanswer
 

n°1016305
Kineas
Posté le 17-03-2005 à 16:49:36  profilanswer
 

Ah oui j'ai oublie de poser une autre question :  
- A un moment du programme je declare un tableau de chaines de caracteres et je fais ceci directement pour pouvoir le remplir :
    for(int i=0;i<WINDOWS_SIZE-1;i++)
      tabTemp[i]=(char *)malloc(sizeof(char[27]));

Cela fonctionne car j'arrive a ecrire dans le tableau ! Cependant, quand je veux reecrire pour la 7eme fois dans une des case du tableau, le programme lance une segmentation fault (il faut ke je remette la boucle a chaque fois que je vais remplir mon tableau du coup et ca marche mais j'orai aime savoir pourquoi j'etais limité a 7 reecriture??)

n°1016307
Taz
bisounours-codeur
Posté le 17-03-2005 à 16:49:59  profilanswer
 

#include <string>
#include <vector>
using namespace std;
 
std::vector<std::string> v(N);

n°1016334
Kineas
Posté le 17-03-2005 à 16:58:22  profilanswer
 

euh...
je comprends pas bien la Taz...
J'ai compris que tu me conseiller d'utiliser la classe string mais je vois pas ce que ca av changer (et je comprends pas bien ta syntaxe la ! c comme ca qu'on declare un tableau de string ?)

n°1016341
CMk
Posté le 17-03-2005 à 17:00:13  profilanswer
 

Il te dit juste que tu dois utiliser la STL au lieu de t'emmerder avec un tableau de char * et des malloc.


Message édité par CMk le 17-03-2005 à 17:00:32
n°1016383
Kineas
Posté le 17-03-2005 à 17:18:26  profilanswer
 

OK bon ben merci pour vos réponses.
Malheureusement je ne peux pas passé tout mon projet avec des string (pas pour le moment du moins) car il y a presque 1000 lignes de code et au moins la moitié concernent les chaînes de caractères !
Je ferait peut etre ca plus tard !

n°1016399
CMk
Posté le 17-03-2005 à 17:25:41  profilanswer
 

WINDOWS_SIZE = ?  
t'as testé sa valeur ?
 
 
 

n°1016415
Kineas
Posté le 17-03-2005 à 17:58:42  profilanswer
 

C'est justement windows_size le probleme !
Le seul moyen moyen que j'ai trouve pour ne plus avoir de segmentation fault c'est d'augmenter la taille de windows_size !
(en fait si windows_size+x est inferieur au nombre de mots alors il y a une segmentation fault mais je comprends vraiment pas pourquoi !) :??:

n°1016416
Taz
bisounours-codeur
Posté le 17-03-2005 à 17:59:48  profilanswer
 

Kineas a écrit :

OK bon ben merci pour vos réponses.
Malheureusement je ne peux pas passé tout mon projet avec des string (pas pour le moment du moins) car il y a presque 1000 lignes de code et au moins la moitié concernent les chaînes de caractères !
Je ferait peut etre ca plus tard !


vu que tu pédales sur un pauvre malloc, malloc qui alloue une taille statique, j'ai du mal à imaginer la tronche des tes 1000 lignes. Reprends tout, ou prend un cours de C++

n°1016463
blastman
just me !
Posté le 17-03-2005 à 19:03:28  profilanswer
 

malloc, c'est pas du C ?


---------------
http://www.blastmanu.info
mood
Publicité
Posté le 17-03-2005 à 19:03:28  profilanswer
 

n°1016894
CMk
Posté le 18-03-2005 à 09:32:36  profilanswer
 

oui


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  pb de memoire (je crois)...

 

Sujets relatifs
encore les allocations de mémoireIPC memoire partagee
[C++] Allocations mémoire pour stl::mapprobleme allocation memoire
Access 2000 :Mémoire libre insuffisante pour mettre à jour l'affichageGarder le résultat d'une requete en mémoire avec PHP Part 2 [Résolu]
Ecrire un conteneur STL dans une mémoire partagéeGarder le résultat d'une requete en mémoire avec PHP
Utilisation mémoire importanteChargement d'un programme en mémoire
Plus de sujets relatifs à : pb de memoire (je crois)...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR