OVH Cloud OVH Cloud

probleme tableaux

26 réponses
Avatar
giovanni
j ai ces ligne la
int * num=new * int[100,100,100,100,100];
int* nb=new int[999,999,999,999,999];
int* ok=new int[999,999,999,999,999];
t valeur variable de 1 a 999
nb[t][0][0][0][0]=nb_1;
le probleme et que dans nb[t][0][0][0][0] il y a pas la valeur nb_1 ?
pourquoi?j ai mis 999 ne sachant pas taille des donnee j ai mis le max...

6 réponses

1 2 3
Avatar
Fabien LE LEZ
On 7 Apr 2005 00:24:04 -0700, :

la présence de continue (dont je ne
vois réelement pas l'utilité)


Pour l'avoir pas mal utilisé (plus en PHP qu'en C++, d'ailleurs), il a
une utilité certaine : il encourage à programmer salement, donc à être
obligé de reprendre le code plus tard. Tout ça pour diminuer le taux
de chômage chez les programmeurs...


--
;-)

Avatar
Gabriel Dos Reis
writes:

| et si on peut se sert de la lime aux ongles pour
| enlever le bouchon de la bouteille de vin, il y a un
| tire-bouchon aussi, et la lime aux ongles est bien pratique
| quand il s'agit de limer les ongles.

Oh.

-- Gaby
Avatar
giovanni
en resumer vous vous prendrier comment pour mettre dans un tableaux de
taille inconnu comme vos ne savez pas combie de ligne a le fichier que vous
telecharger donc pas de dimension de tableaux?
voici ligne que charge le prg mais au debut ne sais pas combien de ligne il
y a et je voudrais metre dans des tableaux les valeur 12 3456 78 90 et
lign suivante 45 64 etc
?
12345 12 34 56 78 90
98765 45 64 31 45 75
"Cyrille" a écrit dans le message de news:
42529d92$0$7628$

Mais en fait il y a de fortes chances que vous n'arriviez pas à allouer
votre tableau même avec la syntaxe correcte: en effet reserver de
l'espace pour 999^5, c'est un peu moins de 100 millions de milliards,
d'entiers, si les entiers font quatre octets, il vous faudrait une RAM de
400 millions de giga-octets, et un système 64-bits pour l'adresser
correctement (et du coup, les entiers feraient 8 octets, et on
approcherait pour vos besoin de 0,8 milliard de giga-octets, ou 0,8
exa-octet).


Bon, en fait mon calcul est inexact (je me suis planté d'un facteur 100),
mais l'idée est là quand même: votre tableau est trop énorme pour
n'importe quel machine.

--
win the yes need the no to win against the no!



Avatar
Fabien LE LEZ
http://www.giromini.org/usenet-fr/repondre.html
Avatar
Vincent Lascaux
"giovanni" a écrit dans le message de news:
4257eaa8$
en resumer vous vous prendrier comment pour mettre dans un tableaux de
taille inconnu comme vos ne savez pas combie de ligne a le fichier que
vous telecharger donc pas de dimension de tableaux?
voici ligne que charge le prg mais au debut ne sais pas combien de ligne
il y a et je voudrais metre dans des tableaux les valeur 12 3456 78 90
et lign suivante 45 64 etc
?
12345 12 34 56 78 90
98765 45 64 31 45 75


En C++, on utiliserait une structure comme std::vector< std::vector< int > >
(ou avec des std::list... ca dépend de ce qu'on va faire avec apres).

void parseStream(std::istream& stream, std::vector< std::vector< int > >&
result)
{
std::string line;
while(std::getline(stream, line))
{
result.push_back(std::vector<int>());
parseLine(stream, result.back());
}
}

void parseLine(const std::string& line, std::vector<int>& result)
{
std::stringstream stream(line);
int number;
while(stream >> number)
result.push_back(number);
}

Il me semble que ca devrait marcher, mais c'est pas testé du tout (comme il
se doit :))
Et puis la lecture d'une ligne s'arrête dès qu'on rencontre quelque chose
qui n'est pas un nombre, ce n'est pas forcément ce que tu veux...

--
Vincent

Avatar
Alexandre
"giovanni" a écrit dans le message de news:

j ai ces ligne la
int * num=new * int[100,100,100,100,100];
int* nb=new int[999,999,999,999,999];
int* ok=new int[999,999,999,999,999];
t valeur variable de 1 a 999
nb[t][0][0][0][0]=nb_1;
le probleme et que dans nb[t][0][0][0][0] il y a pas la valeur nb_1 ?
pourquoi?j ai mis 999 ne sachant pas taille des donnee j ai mis le max...

donc num[1000][...] va donner un comportement indéfini...

le max n'est pas 999 mais 2^32 sur une machine 32 bits, 2^64 sur une machine
64 bits, etc...
Si tu ne connais pas la taille, il vaut mieux NE PAS utiliser les "tableaux"
intégrés, mais un objet de la bibliothèque standard C++ comme std::vector

1 2 3