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

[C] Celui qui trouve...

isochre
isochre
Niveau 6
25 août 2014 à 02:27:50

aura des chocapics ! :hap:

Est-ce que quelqu'un comprend pourquoi ce programme affiche "fff" et non "fffff" ?

https://image.noelshack.com/fichiers/2014/35/1408926330-inf.jpg

Voilà en gros je galère avec l'allocation dynamique :snif:

NukaColaQuartz
NukaColaQuartz
Niveau 8
25 août 2014 à 03:06:23

for(i = 0; tableauTampon[i]; i++)

Tu devrais être heureux que ça t'affiche un truc déjà :hap:
J'ai pas fait de C depuis un moment, mais déjà :

for(i = 0; i < test; i++)

godrik
godrik
Niveau 30
25 août 2014 à 05:33:17

Tu utilise de la memoire non initialise comme test. Du fait le comportement n'est pas defini. Et il se trouve sur ton systeme que la quatrieme case de ton tableau contient 0. donc tu obtiens 3 'f'

trymort
trymort
Niveau 9
25 août 2014 à 12:11:28

mon gars ta boucle for n'a aucun sens donc c'est normal, le secomd parametre sert a fixer une limite hors tableautampon contient n'importe quoi et tu l'utilise pour boucler donc normalement le comportement est totalement inprevu. Utilise I comme limite en disant que tant que i < la taille de ton tableau et du coup t'auras tout tes 'f'.

Un conseil c'est pas bien les boucles for je prefere les while qui sont plus clairs. Tu sais mieux ce que tu fais

[Kyomaro]
[Kyomaro]
Niveau 10
25 août 2014 à 12:24:46

Bah ça donne ça parce que t'as écrit ça :hap:
Oui et alors ? :noel:

isochre
isochre
Niveau 6
25 août 2014 à 12:30:22

Déjà je vous remercie tous pour vos réponses, encore une fois je suis surpris par la sympathie des gens du forum ! :oui:

Ma question concernait surtout la fonction malloc en fait, dont je pense maintenant avoir mieux saisi les subtilités.
Je cherchais à vérifier que mon malloc avait bel et bien allouer 5 octets à mon mot. Mais d'après ce que j'ai compris, il n'y a aucun moyen de le faire... si ? :peur:

trymort
trymort
Niveau 9
25 août 2014 à 12:44:08

En fait l'allocation c'est une reservation si tu veux. Donc peut y avoir n'importe quoi dans ce que t'as alloué mais au moins tu risques pas de segfault

isochre
isochre
Niveau 6
25 août 2014 à 13:47:01

D'accord oui c'est ce que j'ai cru comprendre ! Merci beaucoup en tout cas :oui:

godrik
godrik
Niveau 30
25 août 2014 à 16:34:53

trymort, la boucle for qu'il presente a beaucoup de sens.
Elle itere sur les cases du tableau et s'arrete a la premiere case qui vaut 0, soit le caractere de terminaison de chaine. C'est exactement comme cela que l'on parcours une chaine de caractere en C.

Le seul probleme est que la, la chaine de caractere n'est pas initialise. Donc ca fait n'importe quoi. Le probleme n'est pas la boucle mais l'absence d'initialisation du tableau.

isochre, rappelle toi qu'en C, on termine typiquement les chaines de caractere par un caractere de terminaison \0. Donc si tu veux pouvoir stocker 5 caracteres dans ta chaine, il te faut certanement allouer de la memoire pour 6 afin de pouvoir stokcer le \0.

trymort
trymort
Niveau 9
25 août 2014 à 16:45:12

J'ai pas dit que la boucle etait pas bonne j'ai dit qu'elle avait pas de limite puisqu'il a pas assigné le dernier 0. Je disais surtout que une boucle while dans le code ca fait plus clair et ca evite les oublis (a mon humble avis)

NukaColaQuartz
NukaColaQuartz
Niveau 8
25 août 2014 à 16:58:15

Ouai, enfin, quand on connait la taille du tableau comme ici, un for reste quand même plus simple.

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