begin process at 2008 07 06 00:37:31
1 205 425 membres
7 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : tableaux de deux dimensions [ Base de données / Autre ] (MBALHOUSSE)

tableaux de deux dimensions le 14/05/2008 15:42:26

MBALHOUSSE
j'ai une table de données de deux dimensions, je souhaite la stocker en C (visuel C++).
pouver vous m'aider.
merci.

Re : tableaux de deux dimensions le 14/05/2008 16:30:59

glipper
Membre Club
ta question est un peu floue.

Si tu as un tableau de 3x5 entiers et que tu le sais dès le départ, tu peux faire comme ceci je crois :

int Data[5][3] = {
        {1, 2, 3}
        {4, 5, 6}
        {7, 8, 9}
        {10, 11, 12}
        {13, 14, 15}
};

Sinon, tu peux utiliser un pointeur à deux indirections, si tu ne sais pas à l'avance combien il y aura de données :

int **Data;
int H = 5;
int L = 3;

// on alloue de la mémoire
Data = (int**) malloc(H*sizeof(int*));
for (j=0; j<H; j++)
    *Data[j] = (int*) malloc(L*sizeof(int));

......
// on peut utiliser les données
printf("%d", Data[j][i]);
.......

// puis il faut liberer à la mémoire à la fin
for (j=0; j<H; j++)
    free(*Data[j]);
free(Data);


Voila, je n 'ai pas testé, mais ça devrait marcher. Je ne sais pas si j'ai répondu à ta question, elle est un peu vague...

Glipper


Re : tableaux de deux dimensions le 14/05/2008 16:33:50

glipper
Membre Club
pardon une petite erreur, petite etoile en trop :

int **Data;
int H = 5;
int L = 3;

// on alloue de la mémoire
Data = (int**) malloc(H*sizeof(int*));
for (j=0; j<H; j++)
    Data[j] = (int*) malloc(L*sizeof(int));

......
// on peut utiliser les données
printf("%d", Data[j][i]);
.......

// puis il faut liberer à la mémoire à la fin
for (j=0; j<H; j++)
    free(Data[j]);
free(Data);

Re : tableaux de deux dimensions le 14/05/2008 18:00:33

MBALHOUSSE
merci c cool,
mais si j'ai un tableau ou il y'a pas que des entiers, mais aussi des caracteres,
par exemple:

{{toto,1}
{tata 2}};

toujours en C++.

Re : tableaux de deux dimensions le 14/05/2008 18:37:56

glipper
Membre Club
Bon je crois qu'il va falloir faire autrement alors..............
moi je mettrais tout en caractere. Mais on a alors un tableau en 3 dimensions.

char Data[5][3][50];

strcpy(Data[0][0], "toto");
strcpy(Data[0][1], "titi");
strcpy(Data[0][2], "tata");
strcpy(Data[1][0], "5");
strcpy(Data[1][1], "iop");
strcpy(Data[1][2], "8");
......etc etc

C'est beaucoup plus long, mais je vois pas trop comment faire sinon.




Classé sous : tableaux, dimensions

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS