"désallocation" inopinée

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 14 sept. 2003 à 22:08
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 sept. 2003 à 23:05
J'ai touvé un truc bizarre avec Visual C++ 6: le code suivant plante:

#include <string.h>

void f(char* a)
{
    a = new char[100]; // alloue de la mémoire pour a
}

int main(int argc, char* argv[])
{
    char* a;
    f(a);
    strcpy(a, "Bonjour"); // ca marche pas
    return 0;
}


finalement j'ai remarqué que ca marchait en mode release
est-ce que c'est normal ?

7 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 sept. 2003 à 22:13
Non réflexion faite ca marche pas non plus en mode release avec un autre code que je ne peux pas afficher ici
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 sept. 2003 à 22:17
Bon ca va j'ai compris, c'est tout a fait normal que ca ne marche pas (j'ai l'impression de parler tout seul moi)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 sept. 2003 à 22:32
La solitude, ça n'existe pas.....
Tu avais la tete dans le manque d' "ETOILE".
BruNews, ciao...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 sept. 2003 à 22:43
Excuse moi BruNews, mais j'ai pas trop compris ton histoire d'étoiles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 sept. 2003 à 22:50
*a = new char[100]; allait pas mieux ?
si pas bon je vais me coucher.
BruNews, ciao...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 sept. 2003 à 23:02
Tu rigoles la j'espère ? C un peu ce que t'écris...
voila le code corrigé:

#include <string.h>

void f(char*& a) // référence sur pointeur
{
a = new char[100]; // alloue de la mémoire pour a
}

int main(int argc, char* argv[])
{
char* a;
f(a);
strcpy(a, "Bonjour");
return 0;
}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 sept. 2003 à 23:05
J'avais prevenu que j'irais me coucher, je vais donc aller digerer mon Martini.
A demain.
BruNews, ciao...
0
Rejoignez-nous