CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème C++ : Delete tableaux

Poneymovez
Poneymovez
Niveau 9
11 août 2012 à 09:00:14

Salut, je viens pour vous demandez de l'aide car ça fait une nuit que je cherche en vain :( !

Je travail avec allegro.
J'ai ma boucle principal (Peu importante)
while(!key[KEY_ESC])
{
clear_bitmap(buffer);

DrawMap(buffer, map);

blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_W);
}

J'ai ensuite le Delete du pointeur "buffer" (Que j'ai mis dans un try & catch pour le moment, vous saurez pourquoi après :-p !)
try
{
delete buffer;
buffer = 0;
} catch (exception const& e)
{
cerr << "ERREUR: " << e.what() << endl;
}
Jusque là pas de problème, viens le problème de la map :
for ( int i=0 ; i < 5 ; ++i)
{
delete map[i];
map[i] = NULL;
}
map = 0;
Ici j'ai un gros plantage rien qu'au premier tour de boucle et je ne sais pas pourquoi :( !

Le code de la map :
int** map;
map = new int*[NBR_TILES_LARGEUR];
for (int i = 0; i < NBR_TILES_LARGEUR; ++i)
:d) map[i] = new int[NBR_TILES_HAUTEUR];

NBR_TILES_LARGEUR et NBR_TILES_HAUTEUR sont deux define :

  1. define LARGEUR_ECRAN SCREEN_W
  2. define HAUTEUR_ECRAN SCREEN_H
  3. define TAILLE_TILE 16
  4. define NBR_TILES_LARGEUR LARGEUR_ECRAN/TAILLE_TILE
  5. define NBR_TILES_HAUTEUR HAUTEUR_ECRAN/TAILLE_TILE

Voila, et je ne sais pas pourquoi ça plante. Mon ancien tableau était pareil (Sauf les dimension) et plantait pas :( !

Cordialement :( !

Poneymovez
Poneymovez
Niveau 9
11 août 2012 à 09:02:01

"J'ai ensuite le Delete du pointeur "buffer" (Que j'ai mis dans un try & catch pour le moment, vous saurez pourquoi après :-p !)"
Oups, j'ai pas expliqué : J'ai donc fais des tests avec les cout, avant le delete buffer, je recoit le message. Après le delete buffer je reçois le message. Mais pendant la boucle for, je reçois qu'un message, et après ça plante.

Voila :-) !

godrik
godrik
Niveau 30
11 août 2012 à 09:32:35

Si c'est alloue par new, tu desalloue par delete
Si c'est alloue par new[] tu desalloue par delete[]

Poneymovez
Poneymovez
Niveau 9
11 août 2012 à 09:43:00

Oups, j'avais fais des tests :
for ( int i=0 ; i < 5 ; ++i)
{
delete [] map[i];
cout << "map[" << i << "] est del !" << endl;
}

ça revient au même :-) !
ça bloque au deuxième tour. (J'ai le message seulement une fois).

lokilok
lokilok
Niveau 16
11 août 2012 à 15:18:23

HS mais par pitié, arrête de mettre les point d'exclamations après tes smiley :peur:

JujuDredd
JujuDredd
Niveau 10
11 août 2012 à 15:20:03

Oui, c'est très pénible :-(( !

Poneymovez
Poneymovez
Niveau 9
11 août 2012 à 17:38:19

J'ai oublié de le dire ici, c'est résolu :hap: !!!!!!!!!!! (Oui, c'est pour les deux commentaires au dessus :-p )

Non mais les points d’exclamations je fais même pas attention, c'est mon doigt qui le marque tout seul :hap:

Désolé :(

Caudheur
Caudheur
Niveau 8
12 août 2012 à 00:55:55

Un petit partage de la solution peut-être ? Ça pourra toujours servir aux autres :-)))

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment