Allocation dynamique

cybermatthieu Messages postés 7 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 30 septembre 2004 - 16 juil. 2003 à 21:27
fced42 Messages postés 31 Date d'inscription dimanche 30 décembre 2001 Statut Membre Dernière intervention 3 septembre 2003 - 18 juil. 2003 à 18:03
Bonjours,
Je suis en train de construire une App qui comporte une class qui comprend 12 pointeur a Char et leur fonction. Le probleme est que j'inicialise tout mes pointeur avec mon constructeur sans parametre et lorsque que je veux modifier mes "strings" je l'ai delete puis ensuite je realoue la memoire en fonction du nouveau "string". Lorsque que j'essaie de lire le "string" le message suivant apparait :the memory could not be "written". Chose etrange, cela ce produit seulement si j'essaie de realouer de 13 a 45 Char si j'essaie d'allouer moin de 12 ou plus de 45 CA fonctione!

Je ne comprend vraiment pas!
merci,
Matt
voici la class:
class Permit{
char *no;
char *num;
char *holder;
char *detenteur;
char *modeOfTransport;
char *modeDeTransport;
char *issueDate;
char *emissionDate;
char *expiryDate;
char *expirationDate;
char *realFileName;
char *goodFileName;

Permit();
Permit( char no[], char num[], char holder[], char detenteur[],
char modeOfTransport[], char modeDeTransport[], char issueDate[],
char emissionDate[], char expiryDate[], char expirationDate[]);
Permit( char no[], char num[], char holder[], char detenteur[],
char modeOfTransport[], char modeDeTransport[], char issueDate[],
char emissionDate[], char expiryDate[], char expirationDate[],
char realFileName[], char goodFileName[]);
Permit(char fName[], char fPath[]);
Permit(Permit &permit);
~Permit();

public:
void afficher();
char * getGoodName( char no[], char expDate[]);
int setFilePermit(char fName[], char fPath[]);
void zero();

friend ostream& operator<<( ostream &out, const Permit &p);
friend ofstream& operator<<( ofstream &out, const Permit &p);
friend void main();
};

3 réponses

fced42 Messages postés 31 Date d'inscription dimanche 30 décembre 2001 Statut Membre Dernière intervention 3 septembre 2003
17 juil. 2003 à 22:15
Tu alloue bien avec new et tu efface avec delete[]
ou tu utilise malloc avec realloc et free?
cedric@4devstudio.com
0
cybermatthieu Messages postés 7 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 30 septembre 2004
18 juil. 2003 à 17:43
J'utilise new et delete. Mon projet a avancer... Depuis ce message j'ai trouver l'erreur, mais la j'ai ai rencontrer un autre... :(
La si je roule le programme avec le mode de debugage tout fonctionne a merveille il termine l'execution normalement. Mais si je roule le programme ( sans etre dans le mode de debugage) il plente. Esque j'aurais un fuite de memoire qui arrive a l'occasion mais qu'en debugage ca ne derange pas? Peut-etre devrege demanger une reserve de memoire avant l'execution etant donner que ma class conprend que des pointeurs et que je cree par la suite un tableau ( 1124 ) de ma class?

Merci,
Matt
0
fced42 Messages postés 31 Date d'inscription dimanche 30 décembre 2001 Statut Membre Dernière intervention 3 septembre 2003
18 juil. 2003 à 18:03
Ouais, y'a pas mal de difference d'execution entre le mode debug et le release mais ca peut venir de plein de chose. Essaye d'isoler la zone ou ca deconne pour mieux voir.
C'est long et chiant mais faut bien y passer.
cedric@4devstudio.com
0
Rejoignez-nous