no save
Assistance
Achat
News

Forum | programmation
[programmer en C] - erreur de segmentation
mirza, le jeu. 04 sept. 2003 à 17:20:32
Cours (rapide je suis au boulot ...) sur les pointeurs

char* str1 = NULL; // déclaration mais pas ALLOCATION

char* str2 = (char*) malloc(strlen("bonjour") + 1); // alloue la taille de bonjour + 1 caractère spécial '\0' qui est OBLIGATOIRE et qui indique la fin de la chaine

puis on fait (par exemple)
sprintf(str2, "%s\0", "bonjour");

c'est à dire recopie "bonjour" et '\0' sur str2

en fin de programme les chaines allouées par 'malloc' doivent zetre desallouées

if (str2!=NULL)
{
free(str2); // OBLIGATOIRE sinon la mémoire devient toute pourrie (comme du gruyère avec des blocs non libérés)
str2 = NULL; // = NULL
}
PrécédentGuillaume
sept. 03
mirza
sept. 03
Suivant
REPONSES
mirza
sept. 03
guillaume
sept. 03
guillaume
sept. 03
Bob
sept. 03
Bob
sept. 03
mirza
sept. 03
Guillaume
sept. 03
mirza
sept. 03
mirza
sept. 03
Bob
sept. 03
Version Web
Réalisé par RedShift
no save