MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 14 oct. 2004 à 17:13
pourquoi pas tout simplement :
char *ptr;
ptr = 0x12345678;
Ca marche tres bien mais je crois qu une grsoose erreur se cache la dessous. Il ne faut JAMAIS affecter a un pointeur une adresse arbitraire car elle risque (99.9% de chances meme) de ne pas etre allouee a ton programme ( du moins sur un OS "recent", comme tous les UNIX, Linux ou Windows). Et meme si ton programme est en console sous windows, il plantera lamentablement (sous UNIX c est le bien connu "Segmentation fault"). Cela tient au fonctionnement de la memoire virtuelle sur x86 C est un peu long a expliquer mais si ca t interesse n hesite pas a te renseigner dessus.
Enfin bref sauf si tu sais vraiment ce que tu fais (par ex partir d une adresse connue d une zone memoire et incrementer le pointeur), ca ne marchera pas. Personnellement je n ai jamais affecte une valeur a un pointeur directement comme ca.
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 14 oct. 2004 à 22:32
Oui, MetalDwarf a raison, fo pas assigner direct un pointeur sur uen adresse mémoire, les cpu n'aiment pas ça :-)) ...mnt si tu as besoin de tout ça pour mettre des infos à un emplacement précis de mémoire, utilise memset() ;-)) je crois pas qu'il y ai la un probleme :)
cs_lamalice83
Messages postés93Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention26 septembre 2006 15 oct. 2004 à 08:28
L'adresse 0x03fd représente l'adresse de l'octet Line Status Register du port COM1. Dans cet octet il y a un bit qui m'intéresse ( le TRSE ) qui indique que le dernier octet dans le buffer de sortie du port COM est parti. C'est le seul moyen pour contrôler la fin de l'envoi d'une trame. L'essaye donc de récupérer cet octet, sans succés pour le moment...
cs_thierry la fronde
Messages postés351Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention12 août 2009 15 oct. 2004 à 11:45
Il doit bien exister une fonction qui donne l'adresse du port COM1 ?!
En utilisant comme cela une adresse en 'dur' tu ne pourras pas, me semble-t-il utiliser ton prog sur une autre machine que celle ou tu développe.