Grande chaine de caractères pour test d'un algorithme [Algo/C] - C++ - Programmation
Marsh Posté le 16-01-2003 à 08:35:37
Evadream -jbd- a écrit :
|
EUUUHHHHH, tu sais combien de mémoire tu essaye d'allouer là ?
Marsh Posté le 16-01-2003 à 09:13:10
2 147 483 647 * 8 ce qui me fait environ 16 go à gros coup de louche C'est vrai que c'est n'importe quoi =D =D
Je me demande pourquoi ca passe avec INT_MAX/10 alors Ca swap un peu certes, mais ca va.
Marsh Posté le 16-01-2003 à 16:30:16
tu ferais bien de faire plutot plein de malloc de 1Mo pour etre sur qu'il ne soit pas mappé sur un fichier spécial (genre mmap, si ce concept existe sous windows)
Marsh Posté le 18-01-2003 à 03:51:55
sizeof(char) vaut 1.
8, c'est le nombre de bits dans un octet classique.
Vu que tes pointeurs ont probablement la même taille que les entiers (et quelques autres suppositions), tu essaies d'allouer la moitié de ton espace d'adressage.
Si ton système d'exploitation s'en réserve la moitié pour lui-même, ça passe juste pas.
Rien que la moitié, ce serait jouable...
Marsh Posté le 16-01-2003 à 03:07:47
Edit : Hum... Un simple test if ( s == NULL ) ... m'a permis d'être certain que l'allocation a échoué. Je sais honte à moi, j'aurais du le faire dès le départ..
Bonsoir tout le monde,
Ca fait 2 heures que je me bats avec gdb et je pense avoir compris qu'on ne pouvait allouer plus d'une certaine quantité de mémoire d'un coup ?
Je m'explique, j'ai voulu faire ceci :
Mais apparement, ca rend la suite du programme instable par la suite : en fait ca plante dès que j'ai un effet de bord, d'ou mon intuition sur l'allocation de la mémoire.
Si je fais une grosse bourde, signalez la moi =)
Si c'est autre chose, votre aide me serait bien utile pour obtenir une enorme chaine de caractère ! Edit 2 : J'ai bien sur pensé à une liste chainée, mais j'aimerais savoir si il y a un autre moyen !
Merci et A+
Message édité par Evadream -jbd- le 16-01-2003 à 03:13:01