Pb Tableaux et initialisation.

AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003 - 19 juin 2003 à 10:47
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003 - 19 juin 2003 à 14:53
Bonjour,
Voila je tentais une simple initinitialisation d'un tableau bidimensionnel, mais j'ai pas le resultat escomptsS, voici le code :
#include

int main()
{
short int i,j;
char Tab[3][4];

for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
Tab[i][j]=0;
}
}
cout << Tab[0][3]; //me donne un caractere 'sd'
return 0;
}

Merci d'avance :)

12 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 10:52
memset(Tab, 0, sizeof(Tab));
BruNews, ciao...
0
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 10:56
Heu... je suis censé comprendre ?! jvais quand meme preciser que je commence depuis hier :)
0
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 11:00
Ah ca y est je viens de voir ou était memset, c dans windows.h, mais je sais pas bien a koi ca correspond :)
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 11:02
et bien faut pas avoir peur de passer du temps a lire.
Tu recherches donc 'memset' dans la msdn et tu trouve explications:
place la valeur v, ici 0 le 2eme param, dans les octets commencant a l'adresse (1er param, le buffer), sur une longueur de nbr octets (dernier param).
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 11:07
Merci, mais chez moi ca me donne le meme resultat que quand j'avais initialisé comme ca :
char Tab[3][4]={0};
c'est a dire un ESPACE. :(
et si je change la valeur d'initialisation ca sera tjrs un ESPACE.
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 11:10
char Tab[3][4]={0};
pour sur que est initialise a zero, par contre memset te sert a le remettre a zero pendant le deroulement du prog. Impossible qu'il y ait un espace(valeur = 32) dedans.
BruNews, ciao...
0
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 11:14
OK merci a toi :)
Par contre si c'est impossible d'avoir un ESPACE, je dois etre victime d'un phenomene paranormal car c'est bien ce que j'obtiens... :)
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 11:17
non le paranormal en informatique est aux abonnes absents.
C'est ton affichage qui te fait croire a un espace.
BruNews, ciao...
0
cs_lcampeur Messages postés 19 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 3 juillet 2003
19 juin 2003 à 12:10
Bah, c juste un fichier a inclure : #include <windows.h>
0
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 12:23
Oui ca j'avais qd meme pigé :)
Ce que je me demandais ct la syntaxe de memset mais on m'a repondu :)
j'ai vu aussi qu'il etait dispo dans memory.h
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
19 juin 2003 à 14:26
salut,
Je pense que tu pourrais faire un tableau de type int puisque tu souhaite afficher un nombre.
Aussi ta boucle n'initialise pas tout ton tableau, en particulier la case Tab[0][3] (celle que tu essayes d'afficher).

int Tab[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
Tab[i][j] = 0;
cout << Tab[0][3];
0
AstraDeon Messages postés 7 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 14:53
Slt,
Oui j'avais trouvé l'erreur depuis, mais c'etait bien ca la reponse que j'attendais, merci ! :)
0
Rejoignez-nous