Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Structure contenant tableau dynamique

1 réponse
Avatar
Thierry
Bonjour,

je souhaiterais créer une structure avec un tableau dynamique (de
taille inconnue) qui me sert de base pour la génération de fichiers
binaires.
Ma structure pourrait ressembler à:
[StructLayout(LayoutKind.Sequential, Pack=1) ]
public struct T_APPLICATION
{
public T_FILE_HEADER Header;
public Byte Dummy1;
public Byte Dummy2;
public T_MODULE[] Module;
}
avec
[StructLayout(LayoutKind.Explicit, Pack=1) ]
public struct T_MODULE
{
[FieldOffset(0)]
public Byte[] Dummy1;
[FieldOffset(32)]
public Byte Dummy2;
}

Mais lors de l'instanciation de ma structure T_APPLICATION, une
exception est levée (ex.Message="?"). Vraissemblablement c'est le
paramètre T_MODULE[] qui n'est pas apprécié!
une suggestion?
Merci d'avance

1 réponse

Avatar
Christophe Lauer [MS]
Bonjour,

Thierry wrote:
Bonjour,

je souhaiterais créer une structure avec un tableau dynamique (de
taille inconnue) qui me sert de base pour la génération de fichiers
binaires.



<CUT/>

une suggestion?
Merci d'avance



Pour des tableaux de taille dynamique en .NET, on utilise généralement
l'objet ArrayList.

Il existe un semblant de tableaux dynamiques en VB.NET (et pas en C#) mais
ces derniers ne sont là que pour assurer une compatibilité ascendante avec
VB6.

Tout comme les chaines de caractères en .NET, les tableaux sont dit
"immutables", donc avec ces pseudo tableaux dynamiques en VB.NET : chaque
ajout d'un élément entraine une nouvelle allocation pour l'ensemble du
tableau, copie de l'ensemble des éléments et destruction de l'ancienne
instance. C'est très pénalisant sur les perfs. Leur utilisation n'est pas
conseillée ;)

HTH,

--
Christophe Lauer - Relations Techniques Editeurs de Logiciels
Division Développeurs et Plateforme d'Entreprise - Microsoft France
http://blogs.microsoft.fr/clauer/

This posting is provided "AS IS" with no warranties, and confers no rights.