ROnE91
Messages postés9Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention14 janvier 2005
-
20 juil. 2003 à 22:44
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 2007
-
21 juil. 2003 à 12:19
R-OnE Bonjour, je n'arrive pas a faire fonctionner cette fonction. J'utilise vc++6, le compilateur ne m'indique pas d'erreur mais il se produit une erreur d'execution à "strcpy(i1, data);", et j'ai le message suivant: "Unhandled exception in moviedst.exe: 0xC0000005: Access Violation."
La variable texte est de la forme "aaa|bbb|ccc|ddd|".
Si quelqu'un pouvait trouver une solution ca m'aiderai bien, ca fait un moment que je me prend la tete la dessus !
int AddDt(char * texte)
{
char c;
int step=0, pos=0, n=0;
char data[256];
char *i1, *i2, *i3, *i4;
for (step=0; step<3; step++)
{
pos = 0;
while (c != '|')
{
data[pos] = c = texte[n];
pos++;
n++;
}
cs_Wett
Messages postés104Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention12 juin 2005 21 juil. 2003 à 01:03
Et evite aussi les trucs du genre i1 = "" :/ là tu ecris dans le pointeur direct... comme tu fais un strcpy() juste apres tu peux t'en passer sans pb, mais a la limite si tu y tiens vraiment, fait au moins i1[0] = '\0'; , (*i1)='\0'; ou strcpy( i1, "" ); voila ^^ Mais deja change bien en i1[256] comme t'as dit aardman et tu evitera max d'erreurs ;)
cs_Wett
Messages postés104Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention12 juin 2005 21 juil. 2003 à 12:14
Hum si tu bosse en c++ tente plutot d'utiliser l'instruction new au lien de malloc, ca s'utilise comme ca:
i1 = new char[256];
et apres tu supprime de la memoire (qd tu n'en a plus besoin, ca peut etre à la destruction d'un classe ou la fin d'un programme)
delete [] i1;
Perso je prefere ca à malloc, je trouve la syntaxe plus claire, mais bon apres ca depend des preferences de chacuns ;)
Au fait il n'y a jamais eu de tutos sur la memoire dynamique ici? idem pr les char, c vraiment une plaie ces trucs, personnes n'a eu l'idée d'en expliquer le fonctionnement?
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 21 juil. 2003 à 12:19
si on commence à utiliser le C++ autant l'utiliser completement. il existe dans vc++ une classe de gestion de chaine, de mémoire il me semble que c'est CString, a vérifier (je n'utilise pas ce compilo)