Создать массив указателей из массива double в C # - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь создать массив ссылок на указатели на двойной массив.Например;

double[] mylist = new double[100];
fixed (double* p = mylist) { }

Теперь, как указано в документации MSDN, это эквивалентно p = & mylist [0]. Это только первое значение, возможно ли создать массив указателей на переменные в другоммассив?Или это практика использования только одного указателя?

Спасибо за любую помощь, заранее

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Элементы массива расположены в смежной памяти, поэтому обычно достаточно иметь указатель на первый элемент и выполнять арифметику указателей, чтобы добраться до остальных.

0 голосов
/ 06 октября 2011

Когда у вас есть типизированный указатель на вектор (или, точнее, первый элемент в векторе), он работает как в C / C ++;все, что вам нужно, это один указатель, и вы можете использовать его или как отдельный элемент или как массив с нулями;вы все еще можете получить доступ к p[3], за исключением того, что теперь вместо использования метафор доступа к массиву, это применяет "3 * the-item-size как смещение относительно p".Итак:

p[3] = 1.0;

в порядке.Обратите внимание, конечно, что если вы выйдете за пределы , массив будет случайно ограничен, произойдут плохие вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...