Ответ: Передача сложных данных
Ты не понял мой вопрос про int[3]. Массивы в структурах/классах можно хранить 2 способами - как указатель на какой-то массив (скорее всего в куче), это самый обычный для C# способ:
struct A {
public int[] Coordinates;
}
А можно прямо в структуре:
unsafe struct A {
public fixed int Coordinates[3];
}
То есть в варианте 2 layout у структуры - 3 интежера, а в 1 варианте всего 1 указатель куда-то на массив int[]. Это важно для pinvoke т.к. при передаче структур там тупо память кусками копируется, так что надо чтобы совпадало с нативным вариантом.
__________________
|