begin process at 2012 05 29 11:49:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

forcer un pointeur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

forcer un pointeur

jeudi 14 octobre 2004 à 16:46:41 | forcer un pointeur

lamalice83

Comment fait-on pour forcer un pointeur à pointer sur une adresse précise?

g : char *ptr = 0x03fd; ==> génére une erreur

Comment faire pour lire l'octet à cette adrese?

Lamalice83
jeudi 14 octobre 2004 à 17:13:52 | Re : forcer un pointeur

MetalDwarf

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.
jeudi 14 octobre 2004 à 17:28:42 | Re : forcer un pointeur

DeAtHCrAsH

T'es sure que ca existe ca 0x03fd ???
Moi pas en tout cas!

Shell
jeudi 14 octobre 2004 à 22:32:25 | Re : forcer un pointeur

Gendal67


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 :)

Genda67, à votre service !
vendredi 15 octobre 2004 à 03:04:41 | Re : forcer un pointeur

aardman

Membre Club
Salut,
memset provoquera aussi une erreur si la mémoire n'est pas allouée/adressable.

vendredi 15 octobre 2004 à 08:28:41 | Re : forcer un pointeur

lamalice83

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...

Lamalice83
vendredi 15 octobre 2004 à 11:13:53 | Re : forcer un pointeur

djl

sizeof(void *)

on parle bien de programmation sous dos ? de mode reel ?

sinon pas possible, d'ailleur ton adresse est bien sur 16bits
vendredi 15 octobre 2004 à 11:45:02 | Re : forcer un pointeur

thierry la fronde

Membre Club
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.

A+
vendredi 15 octobre 2004 à 12:05:21 | Re : forcer un pointeur

djl

c'est surtout que ca marche pas en mode protegé, on accede plus directement au materiel, tous passe (heureusement) par des drivers
vendredi 15 octobre 2004 à 12:56:59 | Re : forcer un pointeur

racpp

Administrateur CodeS-SourceS
Salut,
Pour accéder directement à n'importe quelle adresse (ou zone) mémoire sous Windows, il faut utiliser une librairie du genre WinIo:
http://www.internals.com
http://www.internals.com/utilities/winio.zip



Cette discussion est classée dans : pointeur, forcer


Répondre à ce message

Sujets en rapport avec ce message

Pointeur et référence [ par kawazaki ] Bonjour je commence a programmer en c++ je voudrais comprendre quand j'utilise les pointeurs et les références ainsi que les déclarations:*var**var&va Pointeur qui fait planter Windows !!! [ par coyito ] Salutquand je défini moi même une addresse pour un pointeur (exemple pour lire n'importe ou dans la mémoire) j'ai une erreur windows "access violation Pointeur sur methodes avec parametre [ par Kinamstrong ] Salut a toi,Je cherche à savoir comment marche les pointeurs sur les methodes avec parametres.Qu'est ce qui va differencier deux meme methodes en cour tableau et pointeur [ par cognac ] Bonjour,Je tente de faire apparaitre les mois de l'année (simple mais pour un débutant....). Bon il y a toujours "cout"12 fois mais j'ai pensé à un ta je comprend plus rien(pointeur) [ par bidules ] Bonjour,Pour moi on utilise les pointeur pour creer des tableau dynamiquement.or j'ai reussi a en declarer un avec une taille entrer a l'aide d'une va Probleme de Débutant [ par Dorgendubal ] Hello à tous,j'ai déjà programmé en C++ et même avec des envirronements graphiques (comme QT sous linux) mais jamais avec Visual C++.Alors j'ai un pro Probleme complique sur pointeur mais reponse simple surement [ par MrKribou ] Un probleme de pointeur je pense.Je vous expose la situation :Dans une Classe (ClassEx) voila je fais un truc du genre :char* pChar = this->getInfo("i le pointeur de souris. [ par Pyou ] Bonjour ! J'aimerais savoir comment faire pour ne pas afficher le pointeur la de souris par defaut dans ma fenetre opengl, puisque je veux en afficher pointeur non initialisé [ par arc59 ] J'ai créé un programme qui permet de lire les tag des fichiers MP3. Ce programme utilise une structure de pointeurs vers des char. Les tag d'un fichie Pb Class et pointeur ... [ par payen ] salut a tous,j'ai un petit probleme en C++: j'ai definit une class CImage, avec entre autre, un pointeur vers une variable de type char (char *nom_ima


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,560 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales