Tableau de pointeur en C (Problème)
Kel
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous remercie tout d'abord au temps que vous donner pour lire mon problème .
J'ai défini une structure :
typedef struct structure{
int entier1;
char caractere;
int entier2;
}Structure;
typedef Structure * structure_pt ;
Ce que je veux faire c'est lire quelque donnée dans un fichier et les stocker dans ma structure :
FILE * f;
f=fopen("fichier.txt","r");
/*
Pour précision mon fichier contient :
4 r 3
1 t 9
*/
structure_pt info[2];
for(i=0;i<2;++i)
{
fscanf(f,"%d %c %d",&(info[i]->entier1),&(info[i]->caractere),&(info[i]->entier2));
}
Mon problème est le suivant ,
fscanf me stock des valeurs bizzar, mais si je fais fscanf(f,"%d %c",&(info[i]->entier1),&(info[i]->caractere)); ça marche très bien .
JE ne comprends pas pourquoi ?
j'ai essayé d'allouer de la mémoire structure_pt info[2]=(structure_pt)malloc(sizeof(structure_pt)); ça marche pas .
Qu'est ce que je dois faire exactement ?!
Merci d'avance pour votre réponse .
Je vous remercie tout d'abord au temps que vous donner pour lire mon problème .
J'ai défini une structure :
typedef struct structure{
int entier1;
char caractere;
int entier2;
}Structure;
typedef Structure * structure_pt ;
Ce que je veux faire c'est lire quelque donnée dans un fichier et les stocker dans ma structure :
FILE * f;
f=fopen("fichier.txt","r");
/*
Pour précision mon fichier contient :
4 r 3
1 t 9
*/
structure_pt info[2];
for(i=0;i<2;++i)
{
fscanf(f,"%d %c %d",&(info[i]->entier1),&(info[i]->caractere),&(info[i]->entier2));
}
Mon problème est le suivant ,
fscanf me stock des valeurs bizzar, mais si je fais fscanf(f,"%d %c",&(info[i]->entier1),&(info[i]->caractere)); ça marche très bien .
JE ne comprends pas pourquoi ?
j'ai essayé d'allouer de la mémoire structure_pt info[2]=(structure_pt)malloc(sizeof(structure_pt)); ça marche pas .
Qu'est ce que je dois faire exactement ?!
Merci d'avance pour votre réponse .
A voir également:
- Tableau de pointeur en C (Problème)
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Pointeur souris - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Structure est un type vous pouvez l'utiliser directement exemple:
Structure est un type vous pouvez l'utiliser directement exemple:
#include <stdlib.h>
#include <stdio.h>
typedef struct structure{
int entier1;
char caractere;
int entier2;
}Structure;
int main(void)
{
Structure *ptr;
ptr=malloc(sizeof(struct structure)*4);
ptr[0].entier1 = 234;
ptr[0].entier2 = 824;
ptr[3].caractere = 'c';
printf("%d %d %c",
ptr[0].entier1,
ptr[0].entier2,
ptr[3].caractere);
free(ptr);
return 0;
}