Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[BC++] debutant ,tres simple programme ...mais

7 réponses
Avatar
Acetonik
Bjr
Voici ci dessous deux programmes presque identiques ;l'un fonctionne , le
premier , et pas le second .
Je ne comprends pas pourquoi.

Merci d'avance pour votre aide

Acetonik

#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif

main()
{ int i,j,*a[9][9];
clrscr();
*a[2][5]=13;

// for (i=1;i<10;i++) {for (j=1;j<10;j++){*a[i][j]=i+j;};};

cout<<*a[2][5];
getch();
return 0;
}


#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif

main()
{ int i,j,*a[9][9];
clrscr();

//*a[2][5]=13;

for (i=1;i<10;i++) {for (j=1;j<10;j++){*a[i][j]=i+j;};};
cout<<*a[2][5];
getch();
return 0;
}

7 réponses

Avatar
Fred
Attention, tu écris hors bornes...

Les index en C++ vont de 0 à indexmax - 1
Donc, ta boucle devrait être
for(i = 0; i < 9; i++) etc

Fred
Avatar
Acetonik
"Fred" a écrit dans le message de
news:xqx4f.2114$
Attention, tu écris hors bornes...

Les index en C++ vont de 0 à indexmax - 1
Donc, ta boucle devrait être
for(i = 0; i < 9; i++) etc

Fred


Merci beaucoup !!!
Pas evident quand on debute ... malgré la doc.

Merci encore

Avatar
Acetonik
"Fred" a écrit dans le message de
news:xqx4f.2114$
Attention, tu écris hors bornes...

Les index en C++ vont de 0 à indexmax - 1
Donc, ta boucle devrait être
for(i = 0; i < 9; i++) etc


Désolé d'insister mais ceci ne fonctionne toujours pas.
Je suis perplexe.

Cordialement
AC

#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif

main()
{
int i,j,*a[9][9];
clrscr();
for (i=1;i<9;i++) {for (j=1;j<9;j++){*a[i][j]=i+j;};};
cout<<*a[2][5];
getch();
return 0;
}

Avatar
Jean-Marc Bourguet
"Acetonik" writes:

"Fred" a écrit dans le message de
news:xqx4f.2114$
Attention, tu écris hors bornes...

Les index en C++ vont de 0 à indexmax - 1
Donc, ta boucle devrait être
for(i = 0; i < 9; i++) etc


Désolé d'insister mais ceci ne fonctionne toujours pas.
Je suis perplexe.

Cordialement
AC

#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif

main()
{
int i,j,*a[9][9];
clrscr();
for (i=1;i<9;i++) {for (j=1;j<9;j++){*a[i][j]=i+j;};};
cout<<*a[2][5];
getch();
return 0;
}


Tu utilises des pointeurs sans jamais les initialiser.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


Avatar
Matthieu Moy
"Acetonik" writes:

"Fred" a écrit dans le message de
news:xqx4f.2114$
Attention, tu écris hors bornes...

Les index en C++ vont de 0 à indexmax - 1
Donc, ta boucle devrait être
for(i = 0; i < 9; i++) etc


Désolé d'insister mais ceci ne fonctionne toujours pas.
Je suis perplexe.


Tu déclares un tableau de pointeurs sans allouer de mémoire. Soit il
faut déclarer un tableau, tout court, soit il faut utiliser new.

--
Matthieu


Avatar
Matthieu Moy
Matthieu Moy writes:

Tu déclares un tableau de pointeurs sans allouer de mémoire. Soit il
faut déclarer un tableau, tout court, soit il faut utiliser new.


Enfin, utiliser "new", ou en tout cas faire pointer ces pointeurs sur
quelque chose (genre a[...][...]=&...).

--
Matthieu

Avatar
Acetonik
OK maintemant
Merci à tous

AC