Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
954 connectés 

  FORUM HardWare.fr
  Programmation
  C

  du delire totale en pointeur...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

du delire totale en pointeur...

n°958131
miminou
Posté le 21-01-2005 à 00:34:50  profilanswer
 

je comprends plus rien du tout...
(et ca me fait perdre un temps enorme)
 
j'ai pointeur sur une structure , je lis des champs de cette struture, c'est bon,
et si je fait une operation ( ici j'ouvre juste un fichier, un simple open ) et que je relis les champs de ma structure, il me marque n'importe quoi !!!!!
 
je deviens fou , c'est du grand n'importe quoi !!
(je n'arrete pas d'avoir des erreurs irrealistes , ca m'enerve )
 
pouvez vous m'aider , me donner un indice ?
merci d'avance.

mood
Publicité
Posté le 21-01-2005 à 00:34:50  profilanswer
 

n°958136
++fab
victime du syndrome IH
Posté le 21-01-2005 à 00:39:03  profilanswer
 

tu dois surement faire une mauvaise manip de pointeurs à un endroit ou un autre. Sans codes, c'est dur de t'en dire plus.

n°958139
Taz
bisounours-codeur
Posté le 21-01-2005 à 00:40:43  profilanswer
 

il pointe sur quoi ton pointeur de structure ?

n°958145
miminou
Posté le 21-01-2005 à 00:48:50  profilanswer
 

c'est pas simple a dire ,  
 
printf("avant addfile  num = %d name= %s type = %d mode = %d\n",(*inode).num, (*inode).name,(*inode).type,(*inode).i_mode);
  printf("avant add-file courant num = %d name= %s type = %d mode = %d\n",(*current2).num, (*current2).name,(*current2).type,(*current2).i_mode);
 
filefs= fopen ("fs","w" ) ;
 
printf("fiin de zmkdir : \n\n" );
 printf("avant addfile  num = %d name= %s type = %d mode = %d\n",(int)(*inode).num, (*inode).name,(*inode).type,(*inode).i_mode);
  printf("avant add-file courant num = %d name= %s type = %d mode = %d\n",(*current2).num, (*current2).name,(*current2).type,(*current2).i_mode);
 
me donne a l'ecran:
 
avant addfile  num = 1 name= rien type = 0 mode = 99
avant add-file courant num = 808580296 name= / type = -1208061904 mode = 13111
 
fiin de zmkdir :
 
avant addfile  num = 22473635 name= øóÿ¿ôÊë·S38,6ë· type = 360 mode = -2956
avant add-file courant num = -1073744196 name= A type = -1208061904 mode = -2288
 
 
et si j'enleve le "filefs= fopen ("fs","w" ) ; " du code
ca affiche bien 2 fois la meme chose.
 
je sais que je suis pas clair du tout , en plus j'commence a foutre partout ,et c'est un bordel...
et des trucs de ce ganre , j'en ai partout.  :fou:


Message édité par miminou le 21-01-2005 à 00:50:13
n°958150
manatane
En vous remerciant, bonsoir
Posté le 21-01-2005 à 00:53:48  profilanswer
 

J'ai la flemme de regarder attentivement ton gloubiboulga^W post.
Je me suis arreté sur fopen
tu prend un flux pour un descripteur?
un pointeur * FILE est un type opaque il ne se manipule pas comme une structure.

n°958154
SquiZZ
Posté le 21-01-2005 à 00:57:52  profilanswer
 

c'est déclaré comment ta variable filefs ?
ca compile sans warnings ?
 

n°958155
manatane
En vous remerciant, bonsoir
Posté le 21-01-2005 à 00:59:06  profilanswer
 

bon j'ai rien dit, ton code dans les bonnes balises et en entier ce serait quand meme plus clair

n°958156
Taz
bisounours-codeur
Posté le 21-01-2005 à 01:00:24  profilanswer
 

mais bordel, tu l'alloues comment ton inode ? parce que quand on voit que t'as pas encore appris l'opérateur -> on raisonnablement penser que inode n'est pas correctement initialisé

n°958157
++fab
victime du syndrome IH
Posté le 21-01-2005 à 01:01:53  profilanswer
 

l'operateur ->, tu connais ?
filefs doit etre de type FILE*, sinon l'erreur est plus haut

n°958158
miminou
Posté le 21-01-2005 à 01:04:05  profilanswer
 

:jap:  
 
desolé , je peux pas donner tout le code , c'est bcp trop gros et laid.
 
jouvre un quelconque fichier( c un exemple , meme autre chose... ) et les champs de ma structure deviennent autre.
puor le pointeur inode , une fonction crée une structure z_inode et revoie son adresse , recupéré par le pointeur nommé inode
 
bon ,vous cassez pas la tete , je vais chercher , ya surement une bonne explication qqpart  :heink:
 
ps , je connais ->  
merci a tous


Message édité par miminou le 21-01-2005 à 01:09:49
mood
Publicité
Posté le 21-01-2005 à 01:04:05  profilanswer
 

n°958159
++fab
victime du syndrome IH
Posté le 21-01-2005 à 01:09:25  profilanswer
 

miminou a écrit :

:jap:  
desolé , je peux pas donner tout le code , c'est bcp trop gros et laid.


 
faut pas avoir peur  :lol:  
la ligne ... = malloc ... , pas tout non plus

n°958213
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-01-2005 à 08:20:09  profilanswer
 

miminou a écrit :


desolé , je peux pas donner tout le code , c'est bcp trop gros et laid.


Alors je te conseille de faire un esai sur du code plus petit, juste pour vérifier les principes. Poste ce code si tu bloques. Et ne mélange pas les fichiers et les listes tant que tu ne maitrises pas les deux...
Le C, c'est pas un langage de débutant...

Citation :

ps , je connais ->


Alors pourquoi tu ne l'utilises pas ? Franchement, '(*p).', je n'ai jamais vu ça dans du code professionel, même ancien ...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°958226
chrisbk
-
Posté le 21-01-2005 à 09:04:56  profilanswer
 

Emmanuel Delahaye a écrit :


Alors pourquoi tu ne l'utilises pas ? Franchement, '(*p).', je n'ai jamais vu ça dans du code professionel, même ancien ...


 
j'en ai deja vu qui preferait ecrire *(toto + 20) a la place de toto[20]...
(je te laisse imaginer le carnage sur des tableaux en plusieurs dimensions)

n°958233
++fab
victime du syndrome IH
Posté le 21-01-2005 à 09:35:07  profilanswer
 

chrisbk a écrit :

j'en ai deja vu qui preferait ecrire *(toto + 20) a la place de toto[20]...
(je te laisse imaginer le carnage sur des tableaux en plusieurs dimensions)


 
par contre, je préfère écrire (lorsque ça se justifie), *(t-1) que t[-1] ...

n°958307
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-01-2005 à 11:38:33  profilanswer
 

chrisbk a écrit :

j'en ai deja vu qui preferait ecrire *(toto + 20) a la place de toto[20]...
(je te laisse imaginer le carnage sur des tableaux en plusieurs dimensions)


de même que certains s'obstinent à écrire '&a[i]', alors que 'a + i' suffit...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°958330
miminou
Posté le 21-01-2005 à 11:59:30  profilanswer
 

re bonjour a tous,
 
j'ai trouvé !! enfin le debut
 
je vais vous expliquer toute ma stupidité ( le mot est faible) ,
car c'est grace a vous et particulierement a ++fab qui m'a fait tilté, alors je  vous doit bien un petit moment de rigolade :
 
par exemple ,  un pointeur *inode que je remplissait en lisant un fichier..
mais je ne lui avait surtout pas associé de memoire !! ( malloc )
 
ou alors un structure local dans une fonction local de ma lib et je renvoyait son adresse .
 
 :pfff:  pourrez vous un jour me pardonner....   :cry:  
 
bon , bah maintenant que j'ai mis 48h pour resoude ca, il me reste 12h pour tout finir , ps: re  :cry:

n°958362
chrisbk
-
Posté le 21-01-2005 à 12:16:13  profilanswer
 

Emmanuel Delahaye a écrit :

de même que certains s'obstinent à écrire '&a[i]', alors que 'a + i' suffit...


 
 
ah la je sais pas [:petrus75]
entre les deux mon coeur balance [:petrus75] le premier est vraiment brut de décoffrage, tandis que dans le deux on vient bien le but (prendre l'adresse de l'element i tu tableau a)

n°958611
matafan
Posté le 21-01-2005 à 15:43:39  profilanswer
 

Ce n'est pas parce que deux écritures sont equivalente qu'il faut systématiquement choisir la plus courte. Suivant les cas j'utilise plutôt l'une ou plutôt l'autre, et '&a[i]' correspond souvent mieux à ce que la ligne est vraiment sensée faire.

n°958713
KrisCool
“Verbeux„
Posté le 21-01-2005 à 16:46:24  profilanswer
 

Le plus explicite est souvent la meilleure.


---------------
Loose Change Lies | Bars | Last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  du delire totale en pointeur...

 

Sujets relatifs
Reculer un pointeur ?streams : connaître la taille totale du fichier avant d'écrire
Pointeur souris position et dessin du chemin[C] Lire et afficher un pointeur générique
[C++] Pointeur sur constructeur ou Pointeur sur Classe ?prob de pointeur
[C++] Tableau de pointeur de tableauafficher la valeur d'un pointeur en ada
[C/C++] Vérifier un pointeur[C] [ résolu]pbm pointeur et tableau de structures
Plus de sujets relatifs à : du delire totale en pointeur...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR