begin process at 2012 02 12 17:28:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

alignement d'adresse


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

alignement d'adresse

samedi 11 novembre 2006 à 19:00:57 | alignement d'adresse

potate

Bonjour à tous, dans le cadre d'un projet scolaire j'ai à coder la fonction malloc.
Mon problème est le suivant : ma fonction doit renvoyer une adresse multiple de sizeof (size_t).,
pour calculer le décalage en bits à effectuer si necessaire il me faudrais donc faire le modulo entre
l'adresse de mon pointeur et sizeof (size_t) (si je me souviens de met cours de math :d).
Or je n'y arrive pas quelqu'un aurait il une methode pour connaitre se décalage à effectuer.
Merci de vos reponses.
samedi 11 novembre 2006 à 22:13:34 | Re : alignement d'adresse

BruNews

Administrateur CodeS-SourceS

DWORD __fastcall bnAlign(DWORD addr, DWORD align)
{
  if(!addr) addr = align;
  else if(addr & (align - 1)) addr = (addr + align) & ~(align - 1);
  return addr;
}

Avec align devant être une puissance de 2 comme il se doit.

ciao...
BruNews, MVP VC++

dimanche 12 novembre 2006 à 17:57:04 | Re : alignement d'adresse

potate

Merci de ta reponse ,
est ce que c'est possible que tu commente un peu ce que tu  m'a donne car j'ai l'impression que c'est sa mais je ne comprend pas tout.

dimanche 12 novembre 2006 à 19:23:13 | Re : alignement d'adresse

Arnaud16022

Membre Club
tu serais pas à Epita toi ? :p

BruNews -> moi ce que je ne comprends pas c'est le if(!addr) addr = align;
sinon :
addr = 0x0021h, align = 2^2 = 0x0004h
align -1 = 0x0003h
21h AND 3h = 1h = true -> on rentre dans le if car non aligné
pour aligner :
21h+4h = 25h -> non aligné, donc ... on va arranger ça
~(align-1) = ~0x0003h  = 0hFFFC
0025 & FFFC = 0024 -> Aligné !


j'ai bon
_______________________
Omnia vincit labor improbus
dimanche 12 novembre 2006 à 22:38:01 | Re : alignement d'adresse

BruNews

Administrateur CodeS-SourceS
if(!addr) addr = align;
juste pour garantir un alignement hors zéro mais il est clair que je ne mettrais pas ça dans un code, totalement inutile.

ciao...
BruNews, MVP VC++
lundi 13 novembre 2006 à 12:39:59 | Re : alignement d'adresse

Arnaud16022

Membre Club
oh, ok, tu dis que si !addr , elle est d'ores et déjà alignée ?
hum
oki ^^

PS hors sujet : comment ça, 0 msg ??? ca me parait assez incompatible avec les 31000 pts ... Nix a codé ça avec un short int et t'a dépassé le quota ? :D

_______________________
Omnia vincit labor improbus


Cette discussion est classée dans : fonction, adresse, size, sizeof, alignement


Répondre à ce message

Sujets en rapport avec ce message

Récupération d'une adresse IP avec GetAddress [ par Tribute2U ] Bjr, je cherche un moyen pour récupérer l'adresse IP saisie sur un champ de type 'IP Address'. Je sais que c'est la classe CIPAddressCtrl qui est derr Probleme d'Allocation [ par oliverman ] Je pense avoir un petit probleme d'allocation avec mes fonction:Si je fais :char * fonction ( int SIZE){char *buff;buff =new char[SIZE];//(char = 1oct Fonction similaire a isdigit mais pour une string [ par benamoubeach ] Bonjour,jvoulé savoir si yavai une fonction pour savoir si une string était un nombre ou pas , comme le isdigit pour les charmerci d'avance9.1 STL : fonction size [ par UbuRoi ] coutwarning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of dataPourquoi diable cette fonction ne retourne pas un int sizeof bizarre [ par khayyam ] bonjour, j'ai la structure suivante : typedef struct { unsigned char sign1, sign2; unsigned long size_totale, reserve,offset; un Fonction InternetConnect [ par LordBob ] Bonjour tout le monde,je me pose une question, sur le fonction "InternetConnect" et plus precisement sur le second param !!!en fait il faut marqué l'a adresse d'une fonction membre d'une classe [ par gagah1 ] Salut à tous!Je voudrais avoir l'adresse mémoire d'une fonction membre d'une classe, alors que l'ISO C++ l'interdire l'accès.Je m'explique:J'ai une c Fonction qui test la validité d'une adresse Email [ par Cedced41 ] Bonjour,J'utilise Visual C++ (Embedded) et je voudrais savoir si quelqu'un a une fonction toute faite qui teste une adresse email passée en paramêtre. Adresse d'une fonction CallBack dans une classe [ par Capa6T ] Bonjour, J'ai un petit souçis pour récupèrer l'adresse d'une fonction CallBack dans une classe. MaClasse.h : ------------ class MaClasse { protected Ping d'adresse IP [ par tigerskin ] Bonjour !Je voudrais réaliser une fonction de Ping en c++ sans utiliser la console DOS (une fonction de Ping sous Windows). Je pense devoir utiliser l


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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,217 sec (3)

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