salut![]()
je n'arrive pas à comprendre pourquoi ce code ne marche pas :
main()
{
void *p=malloc(4);*p=0x589859;
printf("%x \n",*p);
}
![]()
salut![]()
je n'arrive pas à comprendre pourquoi ce code ne marche pas :
main()
{
void *p=malloc(4);*p=0x589859;
printf("%x \n",*p);
}
![]()
ça ne marche...
c'est à dire ?
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
ça marche pas :
erreur de compilation![]()
les pointeurs void ne sont là que pour des valeurs totalement génériques, il te faut faire un cast dessus avec d'accèder à l'objet pointé.
exemple :de plus tu ne vérifies pas si ton malloc échoue ou non, et tu devrais plutôt utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part (*(int*)p) = 0x589859;qu'un valeur fixe (portabilité)
Code : Sélectionner tout - Visualiser dans une fenêtre à part sizeof(int)
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
qu'est ce que vous voulez dire par valeur generique![]()
avec un type non définiEnvoyé par elghadi_mohamed
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
avec un type non défini
à titre d'exemple ???
avec un type non définie, ça veut dire que tu ne connais pas le type de tes données.
tu n'as pas besoin de savoir le type des données de ton pointeur pour faire ça...
Code : Sélectionner tout - Visualiser dans une fenêtre à part int myfunc(void* param) { return param == NULL; }
en pratique, ça veut dire qu'on ne peut pas déréférencer un void*
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void *p=malloc(4); int* p_i=(int*)p; *p_i=0x589859; printf("%x \n",*p_i);
A quoi sert ce cast ?Envoyé par seriousme
Code : Sélectionner tout - Visualiser dans une fenêtre à part int* p_i = p;
A rien, c'est juste pour montrer comment déréférencer un pointeur générique en le castant.Envoyé par Emmanuel Delahaye
Ceci ayant de l'intérêt pour une fonction générique.
C'est plus explicite.
Il y a pourtant de nombreuses raisons :Envoyé par elghadi_mohamed
- Pas de type retour explicite à main()
- Pas de prototype pour malloc()
- Pas de test de p avant usage.
- p n'est pas typé. Il ne peut donc pas être déréférencé.
- Pas de valeur explicite retournée
salut
Emmanuel Delahaye![]()
j'etais tres emus par vos reponses
est ce que vous pouvez me communiquer votre adresse MSN ou HOTMAIL ou votre pseudo SKYPE pour echanger les inform...
mon MSN est elghadi_mohamed@hotmail.com![]()
En ce qui me concerne, le forum et éventuellement les mails privés (Envoyé par elghadi_mohamed
) suffiront...
Partager