Bonjour à tous,

Je pose cette question parce que j'ai un gros doute , voici un bout de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
line= remove_newline(line);
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
strcpy(line,remove_newline(line));
$

Merci d'avance, parce que la j'ai vraiment un gros doute ...