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

printf("blabla");

Paulop
Paulop
Niveau 12
31 octobre 2013 à 19:48:00

Juste pour que tu saches, 0xbaadf00d c'est pour indiqué de la mémoire allouée mais non initialisée quand tu utilises le compilateur de visual studio.

Paulop
Paulop
Niveau 12
31 octobre 2013 à 19:49:10

http://www.nobugs.org/developer/win32/debug_crt_heap.html#table

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 19:54:38

Ok merci ! Je viens d'ajouter une allocation pour src dans la fonction cuttingTexture, mais j'ai encore le problème. Cette fois j'ai cette erreur :

  1. 0 6C7D860B SDL_IntersectRect() (C:\Users\Jenny\DOCUME~1\1-PROG~1\2-PROJ~1\Test\bi

n\Debug\SDL2.dll:??)

  1. 1 00272000 ?? () (??:??)
  2. 2 16362004 ?? () (??:??)
  3. 3 ?? ?? () (??:??)

Etrange, il y a surement quelque chose que je fais mal avec SDL 2.0

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 20:13:42

Ah je crois que j'ai trouvé ! En utilisant SDL_malloc ça ne plante plus. Par contre je ne vois plus mon personnage maintenant :o)) On dirait que c'est l'un ou l'autre xD

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 20:28:28

http://pastebin.com/n6GbntZm

Voilà la fonction cuttingTexture actuellement. Plus aucun problème ne survient, mais rien ne s'affiche à l'écran.

Si je change et que je mets malloc à la place de SDL_malloc ça marche mais ça fait une erreur quand ont quitte...

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 20:32:21

Bon, vraiment désolée de mes quatres postes (godrik tu peux faire le ménage si tu veux)

Mais je viens de trouver et ça marche, mais je ne comprends pas pourquoi.

En gros, si je fais un SDL_malloc pour allouer de la mémoire à ma structure Player, ça fonctionne et je n'ai plus aucune erreur.

Pourquoi pas un simple malloc ?

godrik
godrik
Niveau 30
31 octobre 2013 à 20:35:32

(pas de soucis)

dans le doute, fais passer valgrind :)

PocoIo
PocoIo
Niveau 10
31 octobre 2013 à 20:36:22

Avec sizeof(SDL_Rect*) tu alloues assez d'espace pour un pointeur de SDL_Rect mais ce n'est pas ce que tu veux, tu veux allouer n*sizeof(SDL_Rect) octets, n étant le nombre de sprites sur ton image car tu as besoin d'autant de SDL_Rect qu'il y a de sprites.

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 20:41:21

Ah d'accord Pocolo, c'est logique en plus. J'imaginais que j'allouais de l'espace pour un tableau en faisant ça, mais rien n'était préciser.

Je vais réécrire tout ça et je vous tiens au courant. Si ça marche, ça m'aura au moins fait plonger + dans l'allocation dynamique que j'avais à peine touché jusque maintenant :o))

Pseudo supprimé
Pseudo supprimé 31 octobre 2013 à 21:34:01

Alors plusieurs choses :

J'avais réécrit la fonction, que voici :

http://pastebin.com/EnSp5VZW

Le problème c'est que je n'ai plus de problème mais plus rien ne s'affiche.

Ici par mégarde, j'ai enlevé l'allocation dynamique pour src, et maintenant ça marche, j'ai également accès à tous les sprites de l'image !

Comment ça se fait ? Ce qui faisait le problème de tantôt est bel et bien malloc, bizarrement il faut absolument mettre SDL_malloc

Pseudo supprimé
Pseudo supprimé 02 novembre 2013 à 22:33:20

Finalement je suis retournée avec SDL 1.2 :o)) Moins d'ennuis avec, en plus je crois que ça m'est profitable car il n'y a pas vraiment encore de doc pour la 2.0.

angivare
angivare
Niveau 10
03 novembre 2013 à 14:04:37

si mais ils l'ont cachée

sd460
sd460
Niveau 10
03 novembre 2013 à 14:35:05

Bonjour,

J'aimerai savoir si vous aviez connaissance d'une ressource documentaire qui explique clairement comment se passe la répartition de la mémoire en C ?

J'ai bien compris ce qu'est le tas, la pile, par contre impossible de comprendre dans quel sens tout ceci est imbriqué. On me parle d'adresse haute, basse, de 'it grows upward in a visual listing of memory, toward lower memory addresses'... tout ceci à tendance à m'embrouiller et j'ai du mal à être sûr de savoir si j'ai bien compris :(

Merci

Pseudo supprimé
Pseudo supprimé 03 novembre 2013 à 16:12:09

Angivare, elle n'a pas l'air très complète... Je préfère attendre. Je n'ai pas vraiment de problèmes avec la 1.2. Même l'unicode je le gère bien :

http://pastebin.com/uE22gmNr

godrik
godrik
Niveau 30
03 novembre 2013 à 17:44:42

sd460, non je n'ai pas de ressource precise la dessus. Mais sache que tout ceci est completement compilateur, processeur et systeme d'exploitation dependent.

La meilleur facon de regarder ce qu'il se passe est de mettre des trucs sur la pile et dans le tas et de regarder a quelles addresse les choses sont.

Pseudo supprimé
Pseudo supprimé 03 novembre 2013 à 22:41:46

Sinon, j'ai réécrit la fonction pour découper les sprites, mais en SDL 1.2 :

http://pastebin.com/ygZi33v3

Et ça fonctionne sans problème avec l'allocation dynamique. On dirait que la 2.0 fourni automatiquement des SDL_Rect avec SDL_malloc...

Paulop
Paulop
Niveau 12
04 novembre 2013 à 16:14:46

Quelqu'un peut-il m'expliquer Load-Hit-Store comme si j'étais un enfant de 5 ans ?
Pas sûr d'avoir compris la différence entre Hit et Store.

godrik
godrik
Niveau 30
04 novembre 2013 à 21:06:07

De ce que j'ai compris de ce probleme:

Quand tu fais *foo = 2+*foo et que tu compile en -O0 comme un gore. Tu as 3 instruction qui sont emise:
register = load (foo)
register = register + 2
store (register, foo)

le premier est load, le deuxieme est hit et la troisieme instruction est store.

Le probleme load hit store apparait quand tu fais un truc comme

  • foo = 2+*foo
  • foo = 3+*foo

Ce probleme vient du fait que de facon general, le compilateur ne peut pas optimiser le code. Il est obliger de lire et d'ecrire en memoire 2 fois. C'est toute la discussion du mot cle restrict et C ou du compiler-specific __restrict (que tous les compilateurs raisonnablent supportent).

Le cout est lie au fait que le compilateur est oblige de lire apres l'ecriture et donc il y a plein de chose qu'il ne peux pas faire, comme par exemple du prefetch logiciel.

Djxyz1
Djxyz1
Niveau 6
04 novembre 2013 à 21:15:14

OMG une fille qui aimes la programmation :coeur:

godrik
godrik
Niveau 30
04 novembre 2013 à 21:26:40

Djxyz1, ce n'est pas si rare, 35% de ma classe est compose de femme.

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