IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Localisation mémoire fichiers image [SDL 1.2]


Sujet :

SDL

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut Localisation mémoire fichiers image
    Bonjour,

    Dans un programme j’ai besoin de charger en mémoire un volume important de SDL_Surfaces.
    Je me demandais si il y avait une différence à le faire directement dans le main() ou dans une fonction() ?
    Si je le fais dans une fonction la mémoire ne risque t’elle pas d’être allouée sur la pile ?

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Ca ne change rien que ca soit dans le main ou dans une fonction a priori.

    C'est la manière dont tu déclare la variable et l'initialise qui va changer cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface * = new SDL_Surface();
    ne mettra dans la pile que le pointeur, mais pas la SDL_Surface elle-même si je ne m'abuse.

    Par exemple si tu déclares :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int tableau [88]; // Se fera sur la pile(stack);
    int *tableau = malloc(88*sizeof(int)); // Se fera sur le tas(heap) et attention il faut des allouer la mémoire une fois inutilisée contrairement au stack;
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Merci pour ta réponse wax78.
    Oui, avec un malloc() c’est bien clair que c’est sur le tas.

    Dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface *Surf = SDL_LoadBMP(« image.bmp »);
    C’est la fonction SDL qui réalise le malloc() ?
    Si j’ai un volume important c’est sûr que je ne risque rien avec la pile ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Je pense que SDL_LoadBMP réalise l'alloc.

    Mais faut pas oublier de faire SDL_FreeSurface ( image ); un moment donné.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    OK, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mémoire cache et visionneuse fichiers images
    Par prodi_64 dans le forum Windows
    Réponses: 0
    Dernier message: 24/04/2015, 15h51
  2. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  3. Réponses: 19
    Dernier message: 31/10/2005, 15h04
  4. Problème de mémoire Affichage images
    Par Repti dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2004, 20h06
  5. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo