Bonjour, suite au message que j'ai posé hier je tente de comprendre les tableaux dynamiques (bien qu'au final c'est un tableau de taille fixe que j'utilise, mais ne compliquons pas les choses plus qu'elles ne le sont!).

L'objectif est simuler ce qui suit avec une boucle:
Code c : 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
22
23
int main(int argc, char **argv)
{
    char str[6] = "abcde"; // 6 car \0 à la fin
    char copy[6];
 
    copy[0]=str[0];
    copy[1]=str[1];
    copy[2]=str[2];
    copy[3]=str[3];
    copy[4]=str[4];
    copy[5]=str[5];
 
   /*
    * Le code qui suit n'est pas autorisé (sauf en C99 je pense)
    int i;
    for(i=0; i<6; i++){
	copy[i] = str[i];
    }   
    */
 
    printf("%s\n", copy); // affiche bien abcde
    return 0;
}
Je tente ma chance avec malloc():
Code c : 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
int main(int argc, char **argv)
{
    char str[6] = "abcde"; // 6 car \0 à la fin
    char *copy;
 
    copy = malloc(6 * sizeof(int)); // On alloue de la mémoire pour le tableau copy
 
    int i;
    for(i=0; i<6; i++){
	copy[i] = str[i];
    }
 
    printf("%s\n", copy);
    free(copy);
    return 0;
}
Est-ce la bonne méthode ( malloc() vs calloc() )? Existe-t-il quelque chose de plus simple?

Merci pour le temps que vous me consacrerez.