Allocation et libération de mémoire.
Résolu/Fermé
CoDForlan
Messages postés
44
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
21 juin 2023
-
21 juin 2023 à 14:36
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 22 juin 2023 à 15:06
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 22 juin 2023 à 15:06
A voir également:
- Allocation et libération de mémoire.
- Comment liberer de l'espace sur gmail - Guide
- Mémoire vive - Guide
- Comment libérer de l'espace de stockage sans rien supprimer - Accueil - Guide Android
- Test memoire pc - Guide
- Vider memoire iphone - Guide
1 réponse
CoDForlan
Messages postés
44
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
21 juin 2023
1
21 juin 2023 à 16:46
21 juin 2023 à 16:46
Problème résolu !
l'erreur vien de la:
struct card* deck52 = (struct card*)malloc(52 * sizeof(struct card)); if(!deck52){ return -1; } deck52 = create_deck();
il faut écrire:
struct card* deck52 = create_deck();
if(!deck52){
return -1;
}
Modifié le 22 juin 2023 à 15:07
Salut CoDForlan,
Effectivement ton code écrasait le pointeur vers de la mémoire déjà allouée.
Une observation sur ta structure de données pour créer ton paquet de cartes :
Si already_taken sert à déterminer si la carte a déjà été piochée, je ne ferais pas cela et je retirerais ce champ de la struct.
Tu peux simplement :
Pour piocher les suivantes, tu incrémentes l'indice à mesure que tu prends des cartes.
Tu dois donc seulement garder trace de l'indice de la carte qui correspond à celle qui est "au dessus du paquet".