Tableaux dynamiques!!
Joff
-
Lightness1024! -
Lightness1024! -
Est-ce que quelqu'un pourrait m'expliquer plus ou moins clairement ce qu'est un tableau dynamique et comment on peut les utiliser en C++?
Au passage, si vous pouviez aussi m'indiquer une fonction C++ qui permette de savoir si un fichier est present dans un dossier, ce serait sympa :)
Au passage, si vous pouviez aussi m'indiquer une fonction C++ qui permette de savoir si un fichier est present dans un dossier, ce serait sympa :)
A voir également:
- Tableaux dynamiques!!
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Les tableaux word - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
- Fusionner deux tableaux word ✓ - Forum Excel
3 réponses
Voici un exemple de fonction qui te permet de créer des tableaux dynamique à 2 dimension.
---------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
short alloc_2d_table(int **ptr_table, int height, int weight)
int main(){
int **table;
alloc_2d_table(table,4,5);
*(*(table+2)+2)=3; // ou aussi int table[2][2]=3;
printf("%d\n", *(*(table+2)+2));
return 0;
}
short alloc_2d_table(int **ptr_table,int height,int weight){
int **my_table, count1, count2;
my_table=malloc(sizeof(int)*height);
for(count1=0;count1<height;count1++){
*(my_table+count1)=(int *)malloc(sizeof(int)*weight);
}
for(count1=0;count1<height;count1++){
for(count2=0;count2<weight;count2++){
*(*(my_table+count1)+count2)=0x0;
}
}
ptr_table=my_table;
return 0;
}
----------------------------------------------------
Bonne chance.
josch83
---------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
short alloc_2d_table(int **ptr_table, int height, int weight)
int main(){
int **table;
alloc_2d_table(table,4,5);
*(*(table+2)+2)=3; // ou aussi int table[2][2]=3;
printf("%d\n", *(*(table+2)+2));
return 0;
}
short alloc_2d_table(int **ptr_table,int height,int weight){
int **my_table, count1, count2;
my_table=malloc(sizeof(int)*height);
for(count1=0;count1<height;count1++){
*(my_table+count1)=(int *)malloc(sizeof(int)*weight);
}
for(count1=0;count1<height;count1++){
for(count2=0;count2<weight;count2++){
*(*(my_table+count1)+count2)=0x0;
}
}
ptr_table=my_table;
return 0;
}
----------------------------------------------------
Bonne chance.
josch83
on donne deux polynomes p(x) et q(x) de degré n
ecrire un progamme C permettant de calculer les polynomes s(x) et s'(x)
s(x)=p(x)+q(x)
s'(x) est la derivée de s(x)
ecrire un progamme C permettant de calculer les polynomes s(x) et s'(x)
s(x)=p(x)+q(x)
s'(x) est la derivée de s(x)
je sais pas si les deux précédents etaient vraiment super clairs.
c'est pourquoi je vais quand meme en rajouter une couche.
un tableau dynamique c'est comme un tableau normal sauf que tu ne connais pas sa taille au moment de la compilation, tu mets une variable dans la taille et au lieu d'etre alloué en zone statique il sera alloué sur le heap.
en fait ca veut dire que tu peux supprimer le tableau au cours du programme, le redimensionner, et plein de choses..
par exemple quand tu demandes a l'utilisateur de taper un texte et tu sais pas combien il va te mettre de caracteres.
tu demandes a l'objet textbox (ou inputbox ou je ne sais koi, selon la librairie/OS que tu utilises) quelle est la taille du contenu et ensuite tu alloues la taille + 1 et puis tu peux faire ta copie comme ca par exemple:
int taille;
char* p_chaine;
taille = textbox.size;
p_chaine = malloc(taille+1);
strcpy(p_chaine, textbox.text);
// traitement...
free(p_chaine); // désallocation manuelle obligatoire
return;
tu comprends ?
voila l'interet !
et aussi c'est tres pratique quand les tableaux ont plusieurs dimensions.
a ce moment la tu créer un tableau dynamique de pointeurs, et chaque pointeur pointe vers un tableau dynamique.
tu peux donc créer des listes a taille non égales.
(ca ne fait pas des tableaux rectangulaires mais ca ressemble plus a des barres de niveau comme sur un vu-metre sur une table de mixage pour que tu ais une image)
c'est tres utile par exemple si tu veux charger les textures d'un monde (pour un jeu video par exemple)
tu créer un tableau de la taille du nombre de secteurs dans le monde.
et pour chaque secteur tu créer un tableau de la taille du nombre de textures.
par exemple si il ya 2 secteurs, et 1 texture dans le premier secteur et 2 textures dans le 2eme secteur ca fera un tableau de base de 2 elements (2 secteurs) dont le 0eme element pointe vers un tableau de 1 element (la texture) et le 1er element pointe vers un tableau de 2 elements (les 2 autres textures)
voila !
c'est pourquoi je vais quand meme en rajouter une couche.
un tableau dynamique c'est comme un tableau normal sauf que tu ne connais pas sa taille au moment de la compilation, tu mets une variable dans la taille et au lieu d'etre alloué en zone statique il sera alloué sur le heap.
en fait ca veut dire que tu peux supprimer le tableau au cours du programme, le redimensionner, et plein de choses..
par exemple quand tu demandes a l'utilisateur de taper un texte et tu sais pas combien il va te mettre de caracteres.
tu demandes a l'objet textbox (ou inputbox ou je ne sais koi, selon la librairie/OS que tu utilises) quelle est la taille du contenu et ensuite tu alloues la taille + 1 et puis tu peux faire ta copie comme ca par exemple:
int taille;
char* p_chaine;
taille = textbox.size;
p_chaine = malloc(taille+1);
strcpy(p_chaine, textbox.text);
// traitement...
free(p_chaine); // désallocation manuelle obligatoire
return;
tu comprends ?
voila l'interet !
et aussi c'est tres pratique quand les tableaux ont plusieurs dimensions.
a ce moment la tu créer un tableau dynamique de pointeurs, et chaque pointeur pointe vers un tableau dynamique.
tu peux donc créer des listes a taille non égales.
(ca ne fait pas des tableaux rectangulaires mais ca ressemble plus a des barres de niveau comme sur un vu-metre sur une table de mixage pour que tu ais une image)
c'est tres utile par exemple si tu veux charger les textures d'un monde (pour un jeu video par exemple)
tu créer un tableau de la taille du nombre de secteurs dans le monde.
et pour chaque secteur tu créer un tableau de la taille du nombre de textures.
par exemple si il ya 2 secteurs, et 1 texture dans le premier secteur et 2 textures dans le 2eme secteur ca fera un tableau de base de 2 elements (2 secteurs) dont le 0eme element pointe vers un tableau de 1 element (la texture) et le 1er element pointe vers un tableau de 2 elements (les 2 autres textures)
voila !