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

Tableau de pointeur de structure

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 21:12:41

Non, encore une fois, je ne déclare pas la taille de mon tableau donc, il faut que j'alloue dynamiquement.

Tu peux déclarer un tableau de deux manières :

int tableau[];
int** tableau;

Sinon, voila mon fichier texte :

http://pastebin.com/ng0dLmrs

LEpigeon-888
LEpigeon-888
Niveau 12
17 juin 2013 à 21:27:42

Nan je viens de regarder, c'est bien ce que je pense, "int**" c'est un tableau de tableau :oui:

LEpigeon-888
LEpigeon-888
Niveau 12
17 juin 2013 à 21:31:12

"Non, encore une fois, je ne déclare pas la taille de mon tableau donc, il faut que j'alloue dynamiquement."

Awi désolé j'avais mal compris le truc, je suis un peu embrouillé avec ça :hap:

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 21:37:54

"Nan je viens de regarder, c'est bien ce que je pense, "int**" c'est un tableau de tableau"

-> je viens aussi de regarder, t'a raison, c'est un tableau a deux dimensions. J'ai tout remis a une dimension dans mon code :)

En fait, j'avais été induis en erreur par un code que j'avais lu, tout les tableaux étaient a deux dimensions, sacré perte de mémoire.

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 21:42:07

meme en l'allouant dynamiquement y'a pas besoin de mettre Uint16** :(

char* nom;
nom = malloc(sizeof(char)*MEM_CACHE);

http://pastebin.com/iWgDLzpe
http://pastebin.com/SUHiQTPb

je vois pas pourquoi tu t'amuse a utilisé les pointeurs comme ça

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 21:48:17

" "Nan je viens de regarder, c'est bien ce que je pense, "int**" c'est un tableau de tableau"

-> je viens aussi de regarder, t'a raison, c'est un tableau a deux dimensions. J'ai tout remis a une dimension dans mon code :)

En fait, j'avais été induis en erreur par un code que j'avais lu, tout les tableaux étaient a deux dimensions, sacré perte de mémoire."

oups pas vus :hap:

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 21:53:26

char* nom;
nom = malloc(sizeof(char)*MEM_CACHE);

Par contre, la il y a une petite erreur, le simple octet du char allouée suffit, pas besoin de multiplier par MEM_CACHE ;)

Sinon, ça marche et pas de fausse joie cette fois, j'ai bien appelé la fonction !
J'ai changer pas mal de choses, donc je sais pas trop a quoi c'est du, en tout cas, voila le code qui marche :

http://pastebin.com/KM37bsbm
http://pastebin.com/8LtGbEdZ

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 21:57:19

"Par contre, la il y a une petite erreur, le simple octet du char allouée suffit, pas besoin de multiplier par MEM_CACHE ;) "

si tu veut allé pioché dans de la mémoire pas alloué ok j'ai aucun problème avec ça c'est plutôt ton OS qui vas pas aimer :hap:

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 21:59:48

Ce que je veux dire, c'est que avec malloc(sizeof(char)); tu alloues dynamiquement un char :-p pas besoin de le multiplier par MEM_CACHE ;)

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 22:02:29

oui mais dans ce cas c'est un seul char qui pourras être stocké c'est a dire un seul caractère

si tu veut stocké une chaine de caractère il faut bien le multiplier par MEM_CACHE

LeDictator
LeDictator
Niveau 10
17 juin 2013 à 22:04:12

J'ai vue des horreurs :malade:

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 22:07:49

@leDictator -> quoi donc ?

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 22:10:07

LeDictator on a tous débuter ton post ne sert qu'a énerver les autres si tu a quelque chose a dire dit quelque-chose de constructif au moins comme nous dire pourquoi ceci-cela est une horreur :ok: si tu n'est pas décider a faire ca je te demanderais de partir :ok:

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 22:15:37

"oui mais dans ce cas c'est un seul char qui pourras être stocké c'est a dire un seul caractère

si tu veut stocké une chaine de caractère il faut bien le multiplier par MEM_CACHE"

en effet, j'ai confondu, je me trompe entre les chiffres et les caractères, je suis pas super au point.
Pour te dire, je pensais que un char, c'était 256 caractères :(

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 22:17:51

mieux vaut tard que jamais :-)

est ce que le code que je t'ai passé marche ?

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 22:21:59

Oui, je l'ai dit au dessus :)

Mais le malloc(sizeof(char*)); marche aussi.

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 22:27:58

char* est un pointeur comme int* est un pointeur, un pointeur est juste une addresse mémoire.

Avec malloc(sizeof(char*)); tu réserve de la mémoire de taille égale a ce que prend en mémoire un pointeur c'est a dire pas grand chose et surtout pas assez pour stocké une chaine de caractere.

Et par marcher tu veut dire que le programme compile ou qu'il fonctionne vraiment ?

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 22:29:08

Ah non, il y a un problème, a la ligne 19 de daemon.c, le compilateur me dit :

incompatible types when assigning to type 'Daemon' from type 'struct Daemon *'

Pseudo supprimé
Pseudo supprimé 17 juin 2013 à 22:31:28

Il fonctionne !
Mais t'as raison, c'est surement de la chance, vu mes chaines de caractère ne sont pas très longues.

JusteImbiber
JusteImbiber
Niveau 4
17 juin 2013 à 22:32:00

t'a pas du bien copié j'avais essayé de compilé de mon coté il m'avais mit cette erreur j'avais juste oublié de changer le type de donnée en retour de la fonction loadDeamon en Deamon au lieu de Deamon*

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