Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 13 févr. 2008 à 11:17
Salut:
Avoir des erreurs est attendu.
Le problème se pose au niveau de la fonction sizeof. En Java tous les types ont une taille fixe au contraire des autres langages.
Comme ton tableau contient des bytes alors il suffit de remplacer sizeof(cmdPermGENERFPP[0]) par 1.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 13 févr. 2008 à 11:19
Salut:
Voici un article qui discute la fonction sizeof en Java:
CmdPermRFPP est un tableau et CmdPermRFPP[i]
n'est autre qu'un byte donc length n'est pas connu.
si ton but est
d'obtenir le nombre d'octets que représente un type primitif
en mémoire alors voici une petite récap. sur les
valeurs de ceux-ci en mémoire :
boolean = unsigned 8
bits
byte = signed 8 bits
char = unsigned 16 bits
short =
signed 16 bits
int = signed 32 bits
long = signed 64 bits
float
= 32 bits
double = 64 bits
donc syntaxiquement la
ligne devrais plutôt être :
byte Nb_Trames_Cycliques =
CmdPermRFPP.lenght/ 1;
mais vu que diviser un nombre par 1 ne sert
à rien tu obtiens
byte Nb_Trames_Cycliques =
CmdPermRFPP.lenght; // soit ici le nombre d'éléments du
tableau
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
[auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper]
, relis l'article dont tu donnes le lien, tu as mal compris, il dit exactement le contraire de ce que tu avances :
"the Java language specification says nothing about how class fields
should be aligned in physical memory or that an array of booleans
couldn't be implemented as a compact bitvector inside the JVM."
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 13 févr. 2008 à 21:23
Salut:
Goussej >> Je ne vois pas où la contradiction dans ce que j'avais dit.
J'ai dit seulement : "Le problème se pose au niveau de la fonction sizeof. En Java tous les
types ont une taille fixe au contraire des autres langages."
[auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper]
, la "taille" des types dépend en partie de la plateforme même si c'est assez harmonieux pour les types primitifs. Java te cache cette différence mais elle existe. Même en C, en fonction du compilateur, l'alignement et la représentation en mémoire peuvent varier.
TUER : http://tuer.tuxfamily.org/tuer.php