pointeur renvoyé par fonction, persistant ou non ?
Bonjour à tous,
Je pose cette question parce que j'ai un gros doute , voici un bout de code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
char * remove_newline(char* str)
{
char * nouv = NULL;
if (str != NULL)
{
nouv = new char[strlen(str)+1];
int j = 0;
for (unsigned int i=0;i<strlen(str);i++)
{
if (str[i]!='\n')
{
nouv[j] = str[i];
j++;
}
nouv[j]='\0';
}
}
return nouv;
} |
et puis ailleurs :
Code:
1 2 3
|
char* line = new char [100];
strcpy(line,remove_newline(line)); |
Question :
Combien j'ai de chaine de caractere la ?
1 pointée par "line" et une qu'à renvoyée la fonction donc 2 ?
ou 1 pointée par line qui se trouve être celle renvoyée par la fonction ?
Quelle est la différence si je fais :
Code:
line= remove_newline(line);
au lieu de
Code:
1 2
|
strcpy(line,remove_newline(line)); |
$
Merci d'avance, parce que la j'ai vraiment un gros doute ...