Probleme en structure
Résolu/Fermé
abdess111
Messages postés
40
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2008
-
2 avril 2008 à 22:42
abdess111 Messages postés 40 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 mai 2008 - 3 avril 2008 à 11:46
abdess111 Messages postés 40 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 mai 2008 - 3 avril 2008 à 11:46
A voir également:
- Probleme en structure
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Dans son restaurant, igor utilise une application pour gérer les réservations. voici une représentation graphique du schéma (structure) de la base de données de l’application. répondez aux questions. - Forum Antivirus
- La structure du disque est endommagée et illisible ✓ - Forum Matériel & Système
4 réponses
Utilisateur anonyme
2 avril 2008 à 22:52
2 avril 2008 à 22:52
Bonsoir,
Le champ mois n'est pas initialisé correctement. Tu alloue seulement la taille d'un caractère, cad. 1 octet !
toto->mois=malloc(sizeof(char));
Il faudrait par exemple définir une constante pour allouer un nombre de caractères suffisant pour tout mois :
#define LENGTH_MAX_OF_MONTH 10
toto->mois=malloc(LENGTH_MAX_OF_MONTH);
Sam.
Le champ mois n'est pas initialisé correctement. Tu alloue seulement la taille d'un caractère, cad. 1 octet !
toto->mois=malloc(sizeof(char));
Il faudrait par exemple définir une constante pour allouer un nombre de caractères suffisant pour tout mois :
#define LENGTH_MAX_OF_MONTH 10
toto->mois=malloc(LENGTH_MAX_OF_MONTH);
Sam.
abdess111
Messages postés
40
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2008
1
2 avril 2008 à 22:59
2 avril 2008 à 22:59
merci de mavoir repondre
jai essayer avec celui la
____________________________mais tjr ca marche pas
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date {
int jour;
char *mois ;
int anne;
};typedef struct date tdate;
main()
{
tdate *toto;
int i;
toto=malloc(5*sizeof(tdate));
toto->mois=malloc(9*sizeof(char));
for(i=0;i<5;i++)
{
printf("le jour:\t");
scanf("%d",&(toto+i)->jour);
printf("le mois:\t");
gets((toto+i)->mois);
printf("l'annee:\t");
scanf("%d",&(toto+i)->anne);
}
for(i=0;i<5;i++)
printf("%d %s %d\n",(toto+i)->jour,(toto+i)->mois,(toto+i)->anne);
}
_________________________________________________________________________
et je crois pas que cest le probleme,jai reserver un tabeau infini pr la chaine mois
et voila jai fais un pti teste avec ce code
_________________________________________
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date{
char *moi;
};typedef struct date tdate;
main()
{
tdate *toto;
toto=malloc(3*sizeof(tdate));
toto->moi=malloc(sizeof(char));
printf("saisi\t");
gets(toto->moi);
printf("%s\n",toto->moi);
}
___________________________________________
et ca marche!!!!!!!!!!!!!!!!!!!!!
jai essayer avec celui la
____________________________mais tjr ca marche pas
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date {
int jour;
char *mois ;
int anne;
};typedef struct date tdate;
main()
{
tdate *toto;
int i;
toto=malloc(5*sizeof(tdate));
toto->mois=malloc(9*sizeof(char));
for(i=0;i<5;i++)
{
printf("le jour:\t");
scanf("%d",&(toto+i)->jour);
printf("le mois:\t");
gets((toto+i)->mois);
printf("l'annee:\t");
scanf("%d",&(toto+i)->anne);
}
for(i=0;i<5;i++)
printf("%d %s %d\n",(toto+i)->jour,(toto+i)->mois,(toto+i)->anne);
}
_________________________________________________________________________
et je crois pas que cest le probleme,jai reserver un tabeau infini pr la chaine mois
et voila jai fais un pti teste avec ce code
_________________________________________
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date{
char *moi;
};typedef struct date tdate;
main()
{
tdate *toto;
toto=malloc(3*sizeof(tdate));
toto->moi=malloc(sizeof(char));
printf("saisi\t");
gets(toto->moi);
printf("%s\n",toto->moi);
}
___________________________________________
et ca marche!!!!!!!!!!!!!!!!!!!!!
abdess111
Messages postés
40
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2008
1
3 avril 2008 à 01:14
3 avril 2008 à 01:14
euh jai trouver la 1er erreur cest ke
pour linsstruction toto->mois=malloc(9*sizeof(char)); je reserve la memoire juste pour le pointeur moi qui se trouve dans la premier case
il faus ke a chaque fois le i sincumente(passe a la next case je dois reserver la memoire)
mais bon jai utiliser les tableaux statique cest mieux(rapidite + reserve pas tt la memoire disponible)
voila le code pour les gens qui sinteraissent
_____________________________________________
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date {
int jour;
char tab[50];
int anne;
};typedef struct date tdate;
int test()
{
int v;
char c;
c=getchar();
printf("voulez vous continuez?(o/n)\t");
scanf("%c",&c);
if(c=='o' || c=='O')
v=1;
else
v=0;
return v;
}
main()
{
tdate *toto;
int i,j;
i=0;
toto=malloc(sizeof(tdate));
do
{
printf("la date %d:\t",i+1);
scanf("%d %s %d",&(toto+i)->jour,&(toto+i)->tab,&(toto+i)->anne);
i++;
}while(test());
for(j=0;j<i;j++)
printf("%d %s %d\n",(toto+j)->jour,(toto+j)->tab,(toto+j)->anne);
}
_________________________________
allez a bientot
pour linsstruction toto->mois=malloc(9*sizeof(char)); je reserve la memoire juste pour le pointeur moi qui se trouve dans la premier case
il faus ke a chaque fois le i sincumente(passe a la next case je dois reserver la memoire)
mais bon jai utiliser les tableaux statique cest mieux(rapidite + reserve pas tt la memoire disponible)
voila le code pour les gens qui sinteraissent
_____________________________________________
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date {
int jour;
char tab[50];
int anne;
};typedef struct date tdate;
int test()
{
int v;
char c;
c=getchar();
printf("voulez vous continuez?(o/n)\t");
scanf("%c",&c);
if(c=='o' || c=='O')
v=1;
else
v=0;
return v;
}
main()
{
tdate *toto;
int i,j;
i=0;
toto=malloc(sizeof(tdate));
do
{
printf("la date %d:\t",i+1);
scanf("%d %s %d",&(toto+i)->jour,&(toto+i)->tab,&(toto+i)->anne);
i++;
}while(test());
for(j=0;j<i;j++)
printf("%d %s %d\n",(toto+j)->jour,(toto+j)->tab,(toto+j)->anne);
}
_________________________________
allez a bientot
abdess111
Messages postés
40
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2008
1
3 avril 2008 à 11:46
3 avril 2008 à 11:46
moi je travaille avec visual basic studio parce que je travaille aussi le visual basic.le c++ cest pour lannée prochaine :-)
aussi le java et le php cest un long programme qui mattend :-)
allez a bientot
aussi le java et le php cest un long programme qui mattend :-)
allez a bientot