lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013
-
6 déc. 2007 à 13:41
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
8 déc. 2007 à 00:42
Voici ma structure:
typedef struct _user
{
int index;
int t_index;
BOOL connected;
char ip[32];
BOOL p_protected;
char u_name[32];
struct _user *next;
} user;
typedef user* llist;
Quand je fait un malloc(sizeof(user)), mon programme plante: fenetre envoye ne pas envoye.
(je sais que c est le malloc qui le plante car quand je le met en commentaire, mon porgrame ne plante pas)
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 6 déc. 2007 à 15:18
Salut,
Pas de souci chez moi.
Montres-nous ton appel pour voir, et l'utilisation que tu fais de ta structure.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 6 déc. 2007 à 16:06
Re,
Aucun souci...si ce n'est qu'il faut caster la sortie de malloc, comme suit:
new_user=(user *)malloc(sizeof(user));
Ptet un souci lors de l'affectation du pointeur next...
A part ça, je ne vois pas, désolé...
Nb: à quoi sert le mot clé "auto"? Je ne connais pas...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Vous n’avez pas trouvé la réponse que vous recherchez ?
lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013 6 déc. 2007 à 16:10
Avec la casting ca ne marhe toujours pas..
auto cst une vielle habitude que j'ai pri, en C89, uen variable auto va etre detruite apres l execution de la fonction
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 6 déc. 2007 à 16:19
As-tu exécuter ton code pas-à-pas en débug? Sais-tu où ton appli plante?
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013 6 déc. 2007 à 16:21
Oui j'ai execute pas a pas.
je sais que c est le malloc qui le plante car quand je le met en commentaire, mon porgrame ne plante pas
Quand je le compile en debug et que je lance a partir de visual sa marche, si je compile en dbug ou en release, et que je le lance a partir de windows sa plante au moment de l'apele du malloc
wissemc
Messages postés2Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention 4 avril 2008 6 déc. 2007 à 21:54
definition de structure:
exemple
struct nom_structure
{ int abc;
char nom[20];
} typedef struct nom_structure nouveau_nom;
pour reserver un zone mémoire en utilise la fonction malloc de la bibliotèque include<malloc.h>ou<stdlib.h>
donc la reservation est la suivant:
p=malloc(sizeof(nouveau_structure));
avec sizreof est une fonction qui renvoi la taille de structure en octé
et p un pointeur
lektrosonic
Messages postés145Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention21 février 2013 7 déc. 2007 à 14:12
lol ben mauvaise nouvele pour toi et moi..lol
ton code ne marche, c est toujours le malloc qui foire (je l'ai mi en commentaire et ca ne plante pas)
je suis desesperee............
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 8 déc. 2007 à 00:42
Salut lektrosonic,
si mon code ne marche sur ta machine la seule explication que je peux avoir est kil te manque certaines dll. par exemple en mode debug visual c++ 6.0 utilise mfc42d.dll (note le d apres le nom), pour des appications mfc. Ca m'est deja arrive plusieurs fois, et surtout lorsque tu utilise une version Introduction (donc limitee).Lorsque le programme(Visual Studio) lui meme est corrompu et que certaines DLL sont absentes ou elles meme corrompues plus rien ne fonctionne :il compile et link mais une erreur survient a l'execution.
je suis vraiment surpris que ce code , ki est la base d'une allocation dynamique de bloc (cours C/C++) ne marche pas , car ton code - potentiellement- etait absolument correct. PArce que sous linux ya pas de virtualalloc ou heapalloc. Si kkun est gre de nous eclairer la dessus, ce sera avec grand plaisir.
je suis heureux de faire partie d'une grande famille ...!