passage d'array vide et allocation dans une fonction
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:
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 .