Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3670 connectés 

  FORUM HardWare.fr
  Programmation
  C

  char *a=(char *)(0xAdresse) explication

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

char *a=(char *)(0xAdresse) explication

n°901011
anis_sg
La piussance technologique
Posté le 17-11-2004 à 19:22:38  profilanswer
 

je voudrai une explication sur
char *a=(char *)(0xAdresse)  
que fait se casting il force quoi :??:  
    merci

mood
Publicité
Posté le 17-11-2004 à 19:22:38  profilanswer
 

n°901013
Joel F
Real men use unique_ptr
Posté le 17-11-2004 à 19:23:51  profilanswer
 

il transforme un nombre 32 bits en adresse mémoire pointant sur des char

n°901017
anis_sg
La piussance technologique
Posté le 17-11-2004 à 19:29:22  profilanswer
 

je veux savoir si il y a une adresse reserver pour les entier les char comme c est le cas pour l adresse de la vram 0xa0000000

n°901020
Joel F
Real men use unique_ptr
Posté le 17-11-2004 à 19:33:02  profilanswer
 

????? gne ?

n°901023
anis_sg
La piussance technologique
Posté le 17-11-2004 à 19:44:06  profilanswer
 

je programme un moteur 3d avec le mode 13h
je veux avoire une resolution superieur sans passer par directX ou opengl

n°901024
anis_sg
La piussance technologique
Posté le 17-11-2004 à 19:44:22  profilanswer
 

je programme un moteur 3d avec le mode 13h
je veux avoir une resolution superieur sans passer par directX ou opengl

n°901029
Lam's
Profil: bas.
Posté le 17-11-2004 à 19:51:51  profilanswer
 

Achète toi un bon bouquin de programmation en C. Et ensuite, va voir ce document, qui est la référence des Vesa Bios Extensions.
 
Le lien: http://www.vesa.org/vbe3.pdf


Message édité par Lam's le 17-11-2004 à 19:53:46
n°901037
cris56
Posté le 17-11-2004 à 20:01:56  profilanswer
 

ya aussi le black book de Michael Abrash qui doit etre une reference
 

n°901039
anis_sg
La piussance technologique
Posté le 17-11-2004 à 20:03:36  profilanswer
 

ok mercie

n°901040
Lam's
Profil: bas.
Posté le 17-11-2004 à 20:04:21  profilanswer
 

cris56 a écrit :

ya aussi le black book de Michael Abrash qui doit etre une reference


 
 
       CECI EST UN TOPIC COMPATIBLE HARKONNEN.


Message édité par Lam's le 17-11-2004 à 20:04:41
mood
Publicité
Posté le 17-11-2004 à 20:04:21  profilanswer
 

n°901049
cris56
Posté le 17-11-2004 à 20:07:45  profilanswer
 

ca veut dire quoi ? (serieux j'ai pas compris)

n°901057
Lam's
Profil: bas.
Posté le 17-11-2004 à 20:12:29  profilanswer
 

cris56 a écrit :

ca veut dire quoi ? (serieux j'ai pas compris)


 
Je te le fais en turbo pascal alors:
 
begin
if (topic=="AMIGA" ) or (topic=="DEMO-MAKING" ) or (topic=="ASSEMBLER" )
  then writeln ("Harkonnen compatible" );
end.


Message édité par Lam's le 17-11-2004 à 20:13:17
n°901062
cris56
Posté le 17-11-2004 à 20:16:05  profilanswer
 

ok, mais reconnais que ne connaissant pas harkonnen et ses penchants, ca m'aurais été difficile de deviner
 
je suis d'accord, c'est vieux tout ca (et surtout on s'en fou)

n°906003
Giz
Posté le 23-11-2004 à 20:22:55  profilanswer
 

tiens en parlant des types "char *", j'ai une question pour ma culture personnelle :
 
lorsqu'on on tape l'instruction :
 
char *chaine = "bonjour";
 
Comment marche les mécanismes de l'allocation memoire pour cette chaine derrière ? (il convertit cela en l'instruction de declaration avec un tableau :
 
char chaine[8]={'b','o','n','j','o','u','r', '\0'};
 
:??: )

n°906006
cris56
Posté le 23-11-2004 à 20:30:28  profilanswer
 

ben non, tableau != de pointeur
 
ton "chaine" pointe sur la chaine constante "bonjour"

n°906007
Lam's
Profil: bas.
Posté le 23-11-2004 à 20:31:55  profilanswer
 

Giz a écrit :

tiens en parlant des types "char *", j'ai une question pour ma culture personnelle :
 
lorsqu'on on tape l'instruction :
 
char *chaine = "bonjour";
 
Comment marche les mécanismes de l'allocation memoire pour cette chaine derrière ? (il convertit cela en l'instruction de declaration avec un tableau :
 
char chaine[8]={'b','o','n','j','o','u','r', '\0'};
 
:??: )


Nope.
char *chaine1 = "bonjour";
char chaine2[8]={'b','o','n','j','o','u','r', '\0'};
 
sizeof(chaine1) = sizeof (char *) (probablement 4 sur un PC);
sizeof(chaine2) == 8;
 
D'autre part, chaine1 n'est qu'un pointeur, qui pointe vers une zone mémoire contenant bonjour. chaine2 est directement l'adresse d'une zone mémoire de 8 caractères.
 
 
Enfin, "bonjour" est du type const char * en théorie. Donc cela devrait être:
  const char * chaine = "bonjour";
Tout comme il est préférable d'avoir:
  char chaine[]="bonjour";  
plutôt que de donner la taille soi-même.
 

n°906032
Panini
Posté le 23-11-2004 à 20:56:34  profilanswer
 

cris56 a écrit :

ya aussi le black book de Michael Abrash qui doit etre une reference


 
Ouep, mais ce n'est pas forcément très accessible. mais rien que pour la démarche ça vaut le coup.
 

n°906380
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-11-2004 à 11:09:31  profilanswer
 

tiens, un topic intéressant [:cupra]
 
anis_sg >> pour programmer dans une résolution supérieure à celle proposée par le mode 13h, tu dois utiliser le mode VESA comme le précise Lam's
 
tous les appels se font par la fonction 4Fh, que tu dois placer dans AH. dans AL, tu places la sous fonction correspondante, et tu balances le tout à l'interruption 10h
 
pour initialiser le mode VESA (je me base sur mes souvenirs du VESA 2.0):
- vérifier la disponibilité du mode souhaité via la sous fonction 00h (AH = 4Fh, AL = 00h). tu dois également fournir un pointeur FAR de 256 octets dans ES:DI. en retour, tu obtiens dans ce buffer des infos sur la carte. étape facultative, on peut supposer que toutes les cartes actuelles sont OK, mais bon, c'est mieux de passer par là
- récupère ensuite les infos du mode souhaité via la sous fonction 01h, avec là encore une structure à passer en ES:DI. cette structure doit être décrite dans le lien que t'as filé Lam's.  
- ensuite active ce mode via la sous fonction 02h, avec le mode souhaité dans BX. sauvegarde ensuite dans un tableau les adresses de départ des différentes fenêtres d'accés (via le champ Granularity de la structure précédente)
- change enfin de fenêtre d'accés à la RAM via la fonction 05h, avec en DX l'adresse de départ de la banque courante sauvegardée précédemment
 
c'est un résumé hein ! je suppose que le document linké par Lam's doit être assez indigeste, alors j'ai esssayé de te débroussailler un peu, mais tu devras de toutes façons le lire, vu que ce que je t'ai dit est valable pour le VESA 2.0, il est possible que ça ait été modifié pour la version 3.0


---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  char *a=(char *)(0xAdresse) explication

 

Sujets relatifs
Concaténer un char à la suite d'une stringConversion char en int, float et double
[C++] Conversion char * vers wchar_t *[C] Probleme de conversion char -> int
Delphi : transtypage Interger -> Char : ??Initialisation d'un char*, malloc ou pas ?
Explication HTMLcall : documentation / explication ?
Convertir : (char *) -> (int *) [C ANSI]Convertir un Char* en WCHAR* ? [résolu]
Plus de sujets relatifs à : char *a=(char *)(0xAdresse) explication


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)