Exploiter tableaux dynamiques
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:
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:
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.