Bonjour à tous,

J'ai une question concernant les Structures en Java JNA (com.sun.jna.Structure).

J'ai une Structure de 168 octets, avec des int, double et Pointer dedans qui sont bien initialisé.
Mais lorsque je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MaStruct.ByReference[] maStruct= (MaStruct.ByReference[]) new MaStruct.ByReference().toArray(3);
et bien chaque Structure est séparé de 176 octets (au niveau des adresses mémoires) alors qu'elles ne font que 168 octets. Or il me semble que la méthode garantissait que les Structures sont "continues" en terme d'adresse mémoire.

Pour plus de précisions, coté C++ il y a une première Structure qui contient un pointeur vers une deuxième Structure (celle de 168 octets) et donc en Java je me suis basé sur ça : https://github.com/java-native-acces...edQuestions.md, plus précisément :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
// Field is a pointer to an array of struct
typedef struct _outerstruct5 {
  simplestruct* ptr_to_array; // use Structure.ByReference, and use
                              // Structure.toArray() to allocate the array, 
                              // then assign the first array element to the field
} outerstruct5;
Si quelqu'un pouvait m'éclairer sur pourquoi mes Structures sont espacées de 178 octets et non de 168 octets (qui est la taille d'une Structure)..


Merci