Rechercher : dans
Par :

[C] Initialiser une chain de caractères

Dernière réponse le 5 déc 2008 à 19:06:37 jojo, le 9 mar 2007 à 21:25:46 
 Signaler ce message aux modérateurs

Bonjour,

Je n'arrive pas a initialiser une chaine de caractères qui se trouve dans une structure.

Voila ma structure:

typedef struct element element;
struct element
{
	char * mot;
    struct element *nxt;
};
typedef element* llist;



et ce que j'essai de faire :

llist fcskiplist (llist skiplist, char * motaAjoute)
{    
    element* nouveauMot = (element*)malloc(sizeof(element*));
    nouveauMot->mot = (char*)malloc(sizeof(char*));



La premiere ligne passe bien, le nouveauMot est bien initialisé, mais pas nouveauMot->mot, j'ai droit a une erreur access violation writing avec ce code.

Comment faire ?.

merci

Meilleures réponses pour « [C] Initialiser une chain de caractères » dans :
Les chaînes de caractères en C++ Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
On peut utiliser comme on veut les polices de caractères VoirMythe On peut utiliser comme on veut les polices de caractères (TrueType, TTF...) Réalité FAUX. Explications Non, vous ne pouvez pas. Comme tout travail d'artiste, l'auteur d'une police de caractères doit être rémunéré pour son travail. C'est...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Caractéristiques du langage C VoirLe fichier source Le fichier source d'un programme écrit en langage C est un simple fichier texte dont l'extension est par convention .c. Note d'un visiteur (J.Grondin) : L'extension est en minuscules. Le .C (majuscule) est interprété par...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Code ASCII VoirLe codage des informations Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il...

1

ekra, le 9 mar 2007 à 21:55:06

Bonjour :
element* nouveauMot = (element*)malloc(sizeof(element*));

Correction :
element* nouveauMot = (element*)malloc(sizeof(element));

:) GPG Key ID = 5518CFC7

Répondre à ekra

2

jojo, le 9 mar 2007 à 22:17:42

Bonjour,

Ca ne change rien, toujours la meme erreur..

Répondre à jojo

3

ekra, le 10 mar 2007 à 21:07:12

Bah ya aussi :
nouveauMot->mot = (char*)malloc(sizeof(char*));
A corriger en :
nouveauMot->mot = (char*)malloc(n*sizeof(char)); GPG Key ID = 5518CFC7

Répondre à ekra

4

info, le 5 déc 2008 à 16:03:29

Bonjour ,
je suis debutante en c et j'arrive pas à accéder à une chaine de caractére qui se trouve dans une structure

typedef struct personne personne;
struct personne {

char nom [];

};

et dans mon code .c

j'ai declaré un tableau de type personne

personne tab[3] ;

et maintenant je veux afficher le nom des 3 personnes de mon tableau
j'ai fait ceci:

tab[0].nom ="alain";


es que quelcun peut m'aider
merci
mais ça ne marche pas

Répondre à info

5

lami20j, le 5 déc 2008 à 16:51:17

Salut,

lami20j@debian:~/trash$ cat ccm11.c
#include <stdio.h>
#include<string.h>

int main ()
{
  typedef struct personne personne;
  struct personne {
          char nom [50];
  };
  personne tab[3] ;
  strcpy(tab[0].nom,"alain");
  printf("%s\n",tab[0].nom);
  return 0;
}
lami20j@debian:~/trash$ gcc ccm11.c
lami20j@debian:~/trash$ ./a.out
alain

106485010510997108

Répondre à lami20j

6

info, le 5 déc 2008 à 18:21:43

Merci beaucoup pour ta réponse
et j'ai aussi un autre probléme si ça vous dérange pas
dans ma structure j'ai un booléen pour dire que c'est un homme ou une femme
alors j'ai fait
int sexe ;
et je veut dire que si tab[i].sexe = 1 alors une femme sinon un homme
et je veux que ça soit afficher dans le printf total celui qui contient tous

for (int i=0 ; i<=2 ; i++)
{
tab [i].age;
tab [i].nom;
tab [i].sexe;
tab [i].taille;
tab [i].prenom;
tab [i].celibataire;

if (tab [i]= 0 )
{
printf ("je suis une femme");

}
else if (tab [i] =1)
{
printf ( "je suis un homme ");
}

printf ("mon nom est %s \n mon prenom est %s \n ma taille est %d\n mon age est %d\n mon sexe est %d\n et je suis %d\n ", tab [i].nom ,tab [i].prenom, tab [i].taille , tab [i].age , tab [i].sexe , tab [i].celibataire);

Répondre à info

8

 info, le 5 déc 2008 à 19:06:37

Ok merci
mais ce que je veux c afficher je suis un homme avec les autres (nom prenom ......)

Répondre à info

7

lami20j, le 5 déc 2008 à 19:00:57

Re,

et je veut dire que si tab[i].sexe = 1 alors une femme sinon un homme
pour tester une égalité il faut utiliser ==
= c'est l'opérateur pour affectation 106485010510997108

Répondre à lami20j