Я пишу mex-файл (с использованием C ++), который будет принимать адрес памяти в качестве входных данных и работать с данными по этому адресу памяти. . Поскольку я вынужден использовать MATLAB в качестве среды, моя программа может принимать только типы данных MATLAB в качестве входных данных (char, bool, float, double и int). Как я могу назначить свое входное значение указателю?
Псевдокод:
// Outside of program
// double input_arg = hex2dec('00C2E4E8')
double *pointer;
pointer = (double *)input_arg;
// pointer == hex2dec('00C2E4E8')
В основном это можно увидеть, когда я жестко кодирую значение указателя, подобное:
double *pointer = (double *)hex2dec('00C2E4E8');
Я получаю сообщение об ошибке:
ошибка C2440: '=': невозможно преобразовать из 'double' в 'double *'
Я также пробовал использовать static / const / reinterpret / dynamic_cast, но я действительно не понимаю, как они работают (и я не мог заставить их работать). Можно ли вообще вручную присвоить указателям значения адресов памяти?