Structure C sous windows
ubick21
-
beldyn Messages postés 189 Statut Membre -
beldyn Messages postés 189 Statut Membre -
Salut à tous
je tente en vain de creer une structure en langage C sous windows.
la structure se declare bien mais des que je veux instancier une valeur à un element de la structure, le programme se plante
------------------------------------------------------------------
voila la declaration de ma strucutre dans mon package .h :
typedef struct sparam{
int key1;
int time1;
} *sparam;
------------------------------------------------------------------
dans le .c
je declare la structure : sparam param ;
si j'ajoute dans ma fonction : param.key1 =1;
ca plante tout !
snif !
faut il inclure une librairie speciale pour que windows prenne en compte les structures ?
(jai deja fait un include de windows.h)
je suis persuadé que ca fonctionne sous unix....
si qq un a des id je suis preneur !!
merci !
je tente en vain de creer une structure en langage C sous windows.
la structure se declare bien mais des que je veux instancier une valeur à un element de la structure, le programme se plante
------------------------------------------------------------------
voila la declaration de ma strucutre dans mon package .h :
typedef struct sparam{
int key1;
int time1;
} *sparam;
------------------------------------------------------------------
dans le .c
je declare la structure : sparam param ;
si j'ajoute dans ma fonction : param.key1 =1;
ca plante tout !
snif !
faut il inclure une librairie speciale pour que windows prenne en compte les structures ?
(jai deja fait un include de windows.h)
je suis persuadé que ca fonctionne sous unix....
si qq un a des id je suis preneur !!
merci !
A voir également:
- Structure C sous windows
- Clé windows 8 - Guide
- Montage video gratuit windows - Guide
- Windows movie maker - Télécharger - Montage & Édition
- Windows ne démarre pas - Guide
- Restauration systeme windows 10 - Guide
3 réponses
faut pas lui en demander trop a win, il n p pas trouver un pointeur non alloue, regaerde bien ton typedef, c'est un pointeur, il faut faire un malloc avant de l'utiliser, et je suis sur aussi qu'il faut faire de meme ds n'importe quel OS, le C n'a pas de ramassemiettes.
rectifier moi si j'ai dit des betises.
tafiscobar
rectifier moi si j'ai dit des betises.
tafiscobar
Que ce soit win ou autre, un pointeur n'est pas un type à part entière. J'ai fait du c pas mal de temps, et je n'ai jamais vu ce genre de déclaration de structure, mais j'ai pas la science infuse non plus.
Je te conseillerai plutôt de déclarer un pointeur sur la structure et pas l'inverse.
Après bien sûr, tu alloues avec malloc().
ypedef struct sparam{
int key1;
int time1;
} sparam;
sparam *ptr;
Je te conseillerai plutôt de déclarer un pointeur sur la structure et pas l'inverse.
Après bien sûr, tu alloues avec malloc().
ypedef struct sparam{
int key1;
int time1;
} sparam;
sparam *ptr;
salut mapoule, ton programme ne peut fonctionner car une structure est une variable qui en contient plusieurs autres detypes differentes ou identiques, tout depends des besoins en ressources et en usages, bon bref.
Un pointeur est une variable speciale, contenue dans les couches micros programmées des cartes, qui doit contenir l'adresse codée le plus souvent en hexedecimal d'une autre variable ( avec valeur ou pas) se trouvant dans un autre emplacement memoire.
Donc, comme les pointeurs pointent toujours sur des variables et non des données directement ( right_value), la structure obeit à la même loi, je crois que tu peux comprendres l'erreur de definition de type de ta structure.
Un pointeur se declare toujours> type*nompointeur ex : int*p
un pointeur sur structure aussi > int*p;
p= nom structure;
voila donc, la, ton pointeur indique une strucutre en memoire, et donc, prealablement, comme te l'ont indique les gars tres sympas au dessus, le c permet l'allocation dynamique de memoire.
les fonctions malloc(), calloc() et realloc[(), seulement pour les emplacements memoires qui servent deux fois) sont a dispositions pour bon usage donc......
1] declarer le pointeur (type+nom)
2]declarer la definition de type de la structure ( d'après le standart c_ansi version1)
3]definir la structure cette fois-ci seulement, avec ces champs et valeur si initialisation besoin est au prealable
4]associé le nom de la structure au pointeur et non l'inverse ( voila ton erreur ma couille)
5]le c_ansi ne permet pas de créer des programmes " newbie "
une certaine rigueur de programmation est requise
surtout en ce qui concerne la definition et la declaration des fonctions et tout le toutin ( PROTOTYPAGE)
voila, excuses moi si je suis long mais je crois que certains eclaircissements sur les structures de données etaient necessaires
a+ et bonne chance
abdel
Un pointeur est une variable speciale, contenue dans les couches micros programmées des cartes, qui doit contenir l'adresse codée le plus souvent en hexedecimal d'une autre variable ( avec valeur ou pas) se trouvant dans un autre emplacement memoire.
Donc, comme les pointeurs pointent toujours sur des variables et non des données directement ( right_value), la structure obeit à la même loi, je crois que tu peux comprendres l'erreur de definition de type de ta structure.
Un pointeur se declare toujours> type*nompointeur ex : int*p
un pointeur sur structure aussi > int*p;
p= nom structure;
voila donc, la, ton pointeur indique une strucutre en memoire, et donc, prealablement, comme te l'ont indique les gars tres sympas au dessus, le c permet l'allocation dynamique de memoire.
les fonctions malloc(), calloc() et realloc[(), seulement pour les emplacements memoires qui servent deux fois) sont a dispositions pour bon usage donc......
1] declarer le pointeur (type+nom)
2]declarer la definition de type de la structure ( d'après le standart c_ansi version1)
3]definir la structure cette fois-ci seulement, avec ces champs et valeur si initialisation besoin est au prealable
4]associé le nom de la structure au pointeur et non l'inverse ( voila ton erreur ma couille)
5]le c_ansi ne permet pas de créer des programmes " newbie "
une certaine rigueur de programmation est requise
surtout en ce qui concerne la definition et la declaration des fonctions et tout le toutin ( PROTOTYPAGE)
voila, excuses moi si je suis long mais je crois que certains eclaircissements sur les structures de données etaient necessaires
a+ et bonne chance
abdel