pb!!!! unhandled exception..... : access violation - C++ - Programmation
Marsh Posté le 04-02-2003 à 23:53:01
Vandekerput a écrit : |
C'est quoi ce delire, tu declare un pointeur sur ta structure client et tu essayes d'acceder a un tableau de client.
Si t'a besoin d'un tableau il faut allouer la memoire avec malloc...
Marsh Posté le 04-02-2003 à 23:57:04
fykman a écrit : |
!hop!hop!hop! t'énerve pa
je sui un débutant en C, cé mon 2ème prog, c'est la première foi ke j'utilise les pointeurs...bref j'sui une bille, et en plus j'ai rien compri ton explication...
j'ai fais ça avant, mais ça marche po
cl[i].nom = (char*)malloc(255);
cl[i].adr.rue = (char*)malloc(255);
cl[i].adr.ville = (char*)malloc(255);
Marsh Posté le 04-02-2003 à 23:59:53
ReplyMarsh Posté le 05-02-2003 à 00:02:50
ok je me calme ,
essaye ca :
void enregistrer()
{
int i = 0;
n = ?? //le nombre de client que veux pouvaoir rentrer
cl = (client)malloc(n*sizeof(client));
while(cl[i].nom != "" ) // ça plante là!!!!!!
{i++;}
.....
.....
free(cl);
}
mais je suis pas sur de la syntaxe...
Marsh Posté le 05-02-2003 à 00:05:15
Tu declare un pointeur sur une structure client et après t'essai d'acceder sous la forme d'un tableau, ca po pas marcher
Marsh Posté le 05-02-2003 à 00:06:54
ReplyMarsh Posté le 05-02-2003 à 00:08:17
Poula j'ai rien dis, torché moi
Essaye ca :
cl = (struct client *)malloc(nb_elements * sizeof(struct client));
Marsh Posté le 05-02-2003 à 00:12:57
Vandekerput a écrit : désolé...mé ça marche po |
il te dis quoi ?
donne le code complet
Marsh Posté le 05-02-2003 à 00:15:14
void enregistrer()
{
int i = 0;
while(cl[i].nom != "" )
{i++;}
//cl = (struct client *)malloc(255 * sizeof(struct client));
cl[i].nom = (char*)malloc(255);
cl[i].adr.rue = (char*)malloc(255);
cl[i].adr.ville = (char*)malloc(255);
printf("ENREGISTREMENT D'UN CLIENT\n" );
printf("Entrez le nom du client :" );
scanf("%s",&cl[i].nom);
printf("Entrez la rue du client :" );
scanf("%s",&cl[i].adr.rue);
printf("Entrez l'adresse du client :" );
scanf("%s",&cl[i].adr.ville);
printf("Entrez le Code Postal du client :" );
scanf("%d",&cl[i].adr.cp);
}
c'est tout ce ki y'a, et il plante toujours au même endroit...
Marsh Posté le 05-02-2003 à 00:20:08
pa grave, j'commence à m'endormir, en plus j'ai codé du PB toute la journée collée à l'écran du boulo...alor maintenant un supo et dodo!!!
merci kan même, à une prochaine fois peut-être
Marsh Posté le 04-02-2003 à 23:49:37
le C c'est caca!
ça marche pa!
c'est bon que pour les chats!
c'est je pense une erreur d'alloc mémoire, mais je sé pa comen l'empecher :
struct client
{ char* nom;
struct adresse adr;
};
struct client *cl;
void enregistrer()
{
int i = 0;
while(cl[i].nom != "" ) // ça plante là!!!!!!
{i++;}