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

  FORUM HardWare.fr
  Programmation
  C

  Addition de sizeof (i) au lieu de i

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Addition de sizeof (i) au lieu de i

n°519664
koude
Posté le 21-09-2003 à 16:51:11  profilanswer
 

J'explique mon cas :
Soit ceci :
 

Code :
  1. struct etud {
  2. char *nom;
  3. int nbCote;
  4. int *pCote;
  5. } ;
  6. typedef struct etud Etud;
  7. typedef struct etud *p_Etud;


 
J'alloue dynamiquement cette structure :
 

Code :
  1. p_Etud ptstruct;
  2. scanf ("%d",&nb_etud);
  3. ptstruct = (Etud *) calloc (nb_etud, sizeof (Etud));


 
ensuite :
 

Code :
  1. scanf ("%d",ptstruct[i].nbCote);
  2. ptstruct[i].pCote = (int*) calloc (ptstruct[i].nbCote, sizeof (int));


 
Et lorsque je veux remplir ce tableau avec ça :
 

Code :
  1. for (int j=0;j<ptstruct[i].nbCote;j++)
  2.  {
  3.   printf ("Cote %d : ",j+1);
  4.   scanf ("%d",ptstruct[i].pCote[j]);
  5.   printf ("%d\n",ptstruct[i].pCote[j]);
  6.  }


 
Y a un bleme avec l'initialisation
Donc si je veux 5 * pCote, et que je les initialise avec  
1,2,3,4,5 ben quand je les imprimerai ça donnera :
1,4,9,13,17 soit  
(ptstruct+i)->pCote+sizeof(j));
 
C'est clair nan  ? :lol:  
Une solution ?
ça doit être une bete erreur mais bon...


Message édité par koude le 21-09-2003 à 17:28:21
mood
Publicité
Posté le 21-09-2003 à 16:51:11  profilanswer
 

n°519692
Taz
bisounours-codeur
Posté le 21-09-2003 à 17:01:57  profilanswer
 

dis ton code, je pense meme pas qu'il soit valable
 
ptstruct = calloc (nb_etud, sizeof(Etud));
ptstruct[i].pCote = calloc (ptstruct[i].nbCote, sizeof (int));
 
quand au reste, j'y comprends rien

n°519693
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 17:02:20  profilanswer
 

&(ptstruct+i)
 
ça me semble dangereux ça
c'est pas plutôt ptstruct[i] la manière propre de le faire ?
 
edit: [:benou_grilled]


Message édité par antp le 21-09-2003 à 17:03:02

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519697
Taz
bisounours-codeur
Posté le 21-09-2003 à 17:03:17  profilanswer
 

antp a écrit :

&(ptstruct+i)
 
ça me semble dangereux ça
c'est pas plutôt ptstruct[i] la manière propre de le faire ?

il est complètement pommé entre pointeurs, *, &, ->, [] ...

n°519705
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 17:04:48  profilanswer
 

pommé ? il a mangé trop de pommes ? [:ddr555]
(c'est plutôt paumé, non ? :??:)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519708
koude
Posté le 21-09-2003 à 17:05:14  profilanswer
 

Taz a écrit :

il est complètement pommé entre pointeurs, *, &, ->, [] ...


 
Un rien en effet

n°519715
Taz
bisounours-codeur
Posté le 21-09-2003 à 17:06:44  profilanswer
 

antp a écrit :

pommé ? il a mangé trop de pommes ? [:ddr555]
(c'est plutôt paumé, non ? :??:)

peut être qu'il a un mac    [:spamafote]

n°519742
koude
Posté le 21-09-2003 à 17:16:14  profilanswer
 

et comme ça ça a l'air correcte nan?

n°519764
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 17:29:05  profilanswer
 

Ça marche pas mieux ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519766
koude
Posté le 21-09-2003 à 17:30:39  profilanswer
 

si, ça marche mais c pas pour autant que c'est correct ^^

mood
Publicité
Posté le 21-09-2003 à 17:30:39  profilanswer
 

n°519780
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 17:36:37  profilanswer
 

D'où le "mieux" dans ma phrase :o
 
scanf ("%d",ptstruct[i].pCote[j]);  
 
->
 
scanf ("%d",&(ptstruct[i].pCote[j]));


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519781
red factio​n
Posté le 21-09-2003 à 17:37:12  profilanswer
 

bizarre a lecole en 1ere ils ont exactement le meme enonce pour linstant
 
:whistle:


Message édité par red faction le 21-09-2003 à 17:37:35
n°519784
koude
Posté le 21-09-2003 à 17:38:31  profilanswer
 

Il en veut pas :
error C2102: '&' requires l-value

n°519787
koude
Posté le 21-09-2003 à 17:39:10  profilanswer
 

red faction a écrit :

bizarre a lecole en 1ere ils ont exactement le meme enonce pour linstant
 
:whistle:


Ou donc?

n°519791
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 17:40:50  profilanswer
 

Koude a écrit :

Il en veut pas :
error C2102: '&' requires l-value


 
ha, bizarre, il me semblait que ça marchait.
Je fais rarement du C/C++, et en plus quand j'en fais je le fais mal :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519797
koude
Posté le 21-09-2003 à 17:42:18  profilanswer
 

antp a écrit :


 
ha, bizarre, il me semblait que ça marchait.
Je fais rarement du C/C++, et en plus quand j'en fais je le fais mal :D


 
Et c'est maintenant que tu le dis  :kaola:  ^^
Merci qd même, de toute façon la ça a l'air de fonctionner

n°519798
red factio​n
Posté le 21-09-2003 à 17:42:20  profilanswer
 


Hers

n°519804
koude
Posté le 21-09-2003 à 17:43:18  profilanswer
 


 
Et t'es en train de me dire qu'en premiere ils font deja de l'alloc dynamique de struct ?

n°519809
red factio​n
Posté le 21-09-2003 à 17:44:40  profilanswer
 

:o


Message édité par red faction le 21-09-2003 à 17:51:10
n°519811
koude
Posté le 21-09-2003 à 17:45:23  profilanswer
 

T'es sur que c'est pas en deuxieme ?
Au fait, c koi ton ptit nom propre ?

n°519812
red factio​n
Posté le 21-09-2003 à 17:46:26  profilanswer
 

je suis en mission inconnue puis jparle pas au fossilles non plus :o

n°519814
koude
Posté le 21-09-2003 à 17:48:06  profilanswer
 

red faction a écrit :

je suis en mission inconnue puis jparle pas au fossilles non plus :o


 
alors ça c petit !

n°519815
red factio​n
Posté le 21-09-2003 à 17:48:10  profilanswer
 

bon ouais c ptet en 2e jsais plus mais tjs qd 1e y font pratiquement tout en C

n°523279
Fouge
Posté le 25-09-2003 à 15:51:29  profilanswer
 

scanf ("%d",ptstruct[i].nbCote);
et ça aussi ça marche?
 
T'utilise 3 fois scanf et 2 fois tu te plantes!
Passes par une variable intermédiaire, c'est plus sûr.
 

Code :
  1. int saisie;
  2. scanf ("%d",&saisie);
  3. ptstruct[i].nbCote = saisie;


puis après:

Code :
  1. for (int j=0;j<ptstruct[i].nbCote;j++)
  2. {   
  3. printf ("Cote %d : ",j+1);
  4. scanf ("%d",&saisie);
  5. ptstruct[i].pCote[j] = saisie;
  6. printf ("%d\n",ptstruct[i].pCote[j]);
  7. }

mood
Publicité
Posté le   profilanswer
 


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

  Addition de sizeof (i) au lieu de i

 

Sujets relatifs
Telecharger au lieu d'afficher[HTML] Enregistrer un .htm au lieu de l'ouvrir ?
[C/C++] Addition de date[HTML] Bt parcourir, choix du lieu d'ouverture de l'explorateur
addition de colonnes...comment afficher 00001 au lieu de 1 en php?
[mysql] clée primaire: avoir 00001 au lieu de 1addition affectation...
telecharger une image jpg au lieu de l'afficherConcatenation au lieu du + sous VB5
Plus de sujets relatifs à : Addition de sizeof (i) au lieu de i


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