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:
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
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; }
Est-ce la bonne méthode ( malloc() vs calloc() )? Existe-t-il quelque chose de plus simple?
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; }
Merci pour le temps que vous me consacrerez.
Partager