witam po długim weekendzie.
Przede wszystkim dziękuję za już udzieloną pomoc. Popatrzyłem sobie na tą metodę i zauważyłem, że nie ma tam deklaracji "ret". Znalazłem iż należy zadeklarować go jako "IntPtr". I teraz mam kilka dalszych pytań może już bezpośrednio na kodzie:
unsafe public static int* MyMethod(IntPtr ret)
{
ret = Marshal.AllocHGlobal(sizeof(int) * 1000);
/* 1. Pytanie: Tutaj alokuję pamięć dla mojej tablicy. Mam tablicę dwuwymiarową [X,6]
* więc delkaracja jak mniemam powinna wyglądać tak:
* ret = Marshal.AllocHGlobal(sizeof(double) * 6 * {liczba_elementow_w_tablicy} ); */
int* ptr = (int*)ret.ToPointer();
// 2. Tutaj powinna być zamiana na double więc:
// double* ptr = (double*)ret.ToPointer();
for (int i = 0; i < 1000; i++) ptr[i] = 255;
//3. Tutaj rozumiem że przechodzisz po wszystkich elementach i ustawiasz wskaźnik na każdy z nich... więc u mnie powinno być mniej więcej:
// for (int i = 0; i < {liczba_elementow}; i++) ptr[i] = 255;
// Nie jestem tylko pewien jak zrobić, aby dobrze przypisać to dla tablicy dwuwymiarowej...
return ptr;
}
Byłbym wdzięczny gdybyś mógł jeszcze raz rozwiać moje wątpliwości :) (lub ktokolwiek inny w temacie)