Bonjour


Encore un petit truc pour lequel j'ai pas l'expérience en cSharp

Je dois apeller une fonction qui me va me rendre un tableau de structure et le nombre d'elements de ce tableau

Comment dois je declarer ce tableau dont je ne connais pas encore la longueur pour le passer a ma fonction

Exemple pratique de la fonction d'allocation


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
   public struct PntF
    {
      public double X;
      public double Y;
    };
 
    // *****************************************************
    unsafe static public int RoadPntById()
    {
      char ch = (char)1;
      IntPtr hBcta = (IntPtr)0;
      UInt32 attrId = 1039;
      int count;
      PntF* P; 
      Routing.bctaOpen(ref hBcta, Environ.RoutingDataPath, ch);
      attrId = 8967209;
// j'appelle une DLL qui alloue son propre buffer P et me rends un pointeur
      count = bctaGetElemNodes(hBcta, attrId, out P);
// je m'empresse de recopier le resultat de la DLL dans mon environnement cSharp
      PntF[] nP = new PntF[count];
      for (int i = 0; i < count; i++)
      {
        nP[i] = P[i];
      }
// Je ferme la DLL qui désaloue ses buffer
      Routing.bctaClose(hBcta);
      return 0;
    }
La question est : Comment appeller RoadPntById() en lui passant un array de type PntF dont je ne connais pas la longueur ?
Merci pour votre aide .