Question en C (pointeur)
AbouSaid
-
AbouSaid -
AbouSaid -
bonjour,
j'ai un message d'erreur en lançant un petit prog en C et je ne vois pas la cause. QQ peut-il m'aider SVP ?
Voilà ce que fait le prog :
Déclaration d'une fonction :
unsigned long ma_fct (long No, char **Nom);
char *Nom, *ptr;
main()
{
....
ptr= (char *)malloc(100 * sizeof (char));
ma_fct(1,&ptr);
...
}
Le progrmme s'arrete à l'appel de la fonction avec l'erreur :
(L'instruction à "0x00401c01" emploie l'adresse mémoire "0x000000000".La mémoire ne peut etre "written"
Merci beacoup
j'ai un message d'erreur en lançant un petit prog en C et je ne vois pas la cause. QQ peut-il m'aider SVP ?
Voilà ce que fait le prog :
Déclaration d'une fonction :
unsigned long ma_fct (long No, char **Nom);
char *Nom, *ptr;
main()
{
....
ptr= (char *)malloc(100 * sizeof (char));
ma_fct(1,&ptr);
...
}
Le progrmme s'arrete à l'appel de la fonction avec l'erreur :
(L'instruction à "0x00401c01" emploie l'adresse mémoire "0x000000000".La mémoire ne peut etre "written"
Merci beacoup
A voir également:
- Question en C (pointeur)
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Le pointeur de mon pc portable ne marche plus - Guide
- Pointeur laser publicitaire ✓ - Forum Loisirs / Divertissements
- Pointeur souris avec rond de chargement qui clignote sans arrêts ✓ - Forum Windows
3 réponses
>"0x00401c01" emploie l'adresse mémoire "0x000000000".
Pointeur NULL...
Vérifie que l'allocation est effective
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Pointeur NULL...
Vérifie que l'allocation est effective
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Comme teebo, je te demanderai : pourquoi tu passes l'adresse du pointeur ?
C'est en général utile si tu veux que ce soit la fonction qui alloue l'espace mémoire pour le pointeur, mais là, tu le fais avant...
Ca va en plus etre malheureusement difficile de t'aider sans savoir un peu plus ce qu'est censée faire cette fonction.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
C'est en général utile si tu veux que ce soit la fonction qui alloue l'espace mémoire pour le pointeur, mais là, tu le fais avant...
Ca va en plus etre malheureusement difficile de t'aider sans savoir un peu plus ce qu'est censée faire cette fonction.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Je pense donc que l'allocation doit se faire à l'intérieur : c'est pour cela que tu passes un pointeur sur ton pointeur.
Tu n'as donc pas besoin de faire l'allocation avant.
Ca n'explique cependant pas l'erreur : normalement si l'alloc se fait à l'intérieur, la mémoire aura simplement été allouée pour rien et perdue.
Met toujours le pointeur à NULL et n'alloue rien avant l'appel pour voir si ça change qqchose.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Tu n'as donc pas besoin de faire l'allocation avant.
Ca n'explique cependant pas l'erreur : normalement si l'alloc se fait à l'intérieur, la mémoire aura simplement été allouée pour rien et perdue.
Met toujours le pointeur à NULL et n'alloue rien avant l'appel pour voir si ça change qqchose.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
parce que:
Je dois faire un programme sous visual C++ et je n'ai pas les sources des fonctions mais que les headers et les dlls.
Je dois appeler donc cette fonction avec les parametres en question.
J'espère que j'ai été clair
Merci encore une fois