C++ au java

cs_dunith Messages postés 100 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 11 avril 2008 - 13 févr. 2008 à 10:55
 Utilisateur anonyme - 13 févr. 2008 à 23:12
bonjour


j'ai déjà posé cette question,

byte[] CmdPermRFPP= {1,9,10,4};
BYTE Nb_Trames_Cycliques = sizeof(cmdPermGENERFPP) / sizeof(cmdPermGENERFPP[0]); code en C++

et Twinuts m'avait répondu 'cmdPermRFPP.length'

alors j'ai essayé :

byte Nb_Trames_Cycliques = (CmdPermRFPP.lenght)/ (CmdPermRFPP[0].lenght);

mais j'ai des erreurs


quelq'un peut me dire comment je doit faire?


merci

7 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
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.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
13 févr. 2008 à 11:19
Salut:

Voici un article qui discute la fonction sizeof en Java:

http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 févr. 2008 à 11:30
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.3 (Linux)" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

Attention : c'est
length pas lenght

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

OoWORAoO
0
cs_dunith Messages postés 100 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 11 avril 2008
13 févr. 2008 à 11:37
ok


j'ai compris,

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
13 févr. 2008 à 19:22
[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."

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
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."

Et ceci est une vérité générale.
0
Utilisateur anonyme
13 févr. 2008 à 23:12
[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

yeah! vive java
0
Rejoignez-nous