Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : malloc de structures [ Windows / System ] (lektrosonic)

jeudi 6 décembre 2007 à 13:41:57 | malloc de structures

lektrosonic

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)

Une idee ?

Merci d'avance

l3KTr0 Was HeRe

jeudi 6 décembre 2007 à 15:18:21 | Re : malloc de structures

buno

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

jeudi 6 décembre 2007 à 15:43:20 | Re : malloc de structures

lektrosonic

l'appel est ceci, dans cette fonction

llist add_user(llist linked_user,int indx,int t_indx,char* ipad,char* nam,BOOL prtcd,BOOL cnntd)
{
    auto llist new_user;
    new_user=malloc(sizeof(user));
    //memset((*new_user).ip,0,32);
    //memset((*new_user).u_name,0,32);
    //(*new_user).index=indx;
    //(*new_user).t_index=t_indx;
    //(*new_user).connected=cnntd;
    //strcpy((*new_user).ip,ipad);
    //(*new_user).p_protected=prtcd;
    //strcpy((*new_user).u_name,nam);
    //(*new_user).next=linked_user;
    //return new_user;
}

l3KTr0 Was HeRe

jeudi 6 décembre 2007 à 16:06:05 | Re : malloc de structures

buno

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

jeudi 6 décembre 2007 à 16:10:19 | Re : malloc de structures

lektrosonic

 
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

merci en tt cas pour ton aide
l3KTr0 Was HeRe

jeudi 6 décembre 2007 à 16:19:29 | Re : malloc de structures

buno

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

jeudi 6 décembre 2007 à 16:21:44 | Re : malloc de structures

lektrosonic

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

l3KTr0 Was HeRe

jeudi 6 décembre 2007 à 21:54:10 | Re : malloc de structures

wissemc

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


vendredi 7 décembre 2007 à 13:08:17 | Re : malloc de structures

nickydaquick

Membre Club
Salut,

wissemc--> tu as dit tout vrai.
lektrosonic--> voici un truc que tu pourrais essayer, si ca plante je me defais du C pour de bon lol:

#include <malloc.h>
#include <string.h>

typedef struct _user
{
    char connected;
    char p_protected;
    int index;
    int t_index;
    struct _user *next;
    char ip[32];
    char u_name[32];
} user,*llist;

llist add_user(llist linked_user,int indx,int t_indx,char* ipad,char* nam,char prtcd, char cnntd)
{
    llist new_user = (llist)malloc(sizeof(user));
    if(!new_user)return 0; //des fois que l'allocation echouerait

    memset((*new_user).ip,0,32);
    memset((*new_user).u_name,0,32);
    (*new_user).index=indx;
    (*new_user).t_index=t_indx;
    (*new_user).connected=cnntd;
    if(ipad)strcpy((*new_user).ip,ipad);
    (*new_user).p_protected=prtcd;
    if(nam)strcpy((*new_user).u_name,nam);
    (*new_user).next=linked_user;
    return new_user;
}

J'espere avoir aide, Bonne chance

je suis heureux de faire partie d'une grande famille ...!

vendredi 7 décembre 2007 à 14:12:34 | Re : malloc de structures

lektrosonic

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............

l3KTr0 Was HeRe


1 2

Cette discussion est classé dans : user, plante, structures, typedef, malloc


Répondre à ce message

Sujets en rapport avec ce message

C - typedef - heritage ??? [ par txa ] Bonjour, Je programme en C et j'ai un petit probleme de conception: j'ai plusieurs structures (definie avec des typedef) DeviceVariable DeviceDmx structures imbriquées [ par draluorg ] Salut a tous,Je recontre un probleme en creant des structures imbriquées :(Voici un exemple type de mes structures:typedef struct _SUB_SUB_SUB_STRUCTU utilisation de typedef et des structures en C [ par sandy27 ] je débute en C et je dois écrire un code C pour un modèle de simulation. Une norme m'impose de déclarer les entrées/sorties de mon modèle dans un fich probleme de static variable [ par Bason_sensei ] Bonjour, voila mon pbl : j'ai une classe user et je je veut le nombre de user. j'ai donc créer un varaible static nbUsers // User.h class User{     Modifier une variable environnement user ? [ par chuckboy ] BonjourLa question est dans le titre !J'ai une variable d'environnement utilisateur que j'aimerais modifier à partir mon programme comment puis-je fai Structures nommées incompréhensible ... à l'aide [ par otterc8 ] Bonjour, voila j'ai ce bout de code que je ne comprends pas top, malgré des recherches sur les structures, il y a des choses que je ne comprends pas! Malloc [ par GIRAFE ENRHUMEE ] Si j'ai une variable pointeur qui pointe sur une adresse, par exemple la variable *pc, et que je fais *pc = (*type)malloc(sizeof(type< DevCpp capricieux ? bug étrange... [ par nollyflip ] Bonjour,J'ai un comportement étrange (et pour le moins énervant) de dev cpp, je me dis que ce bug est peut-être connu et résolu. J'ai la 4.9.9.2 (dern structure pointant sur un tableau de structures [ par timy94 ] BonjourVoila mon problème. En C j'ai une structure ayant comme élément un pointeur sur un tableau de structures. Comment faire le malloc et comment ac appel de fontions avec un tableau de pointeurs en paramèmtre [ par thespartan ] Voilà j'ai cette fonction qui marche :void alloue(int lig,int col){int i,j;  int l='A';  T = (int **) malloc(col*sizeof(int*));  if (T == NULL)    pri


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,905 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.