我正在编写一个 mex 文件(使用 C++),它将接受一个内存地址作为输入,并对该内存地址上的数据进行操作。由于我被迫使用 MATLAB 作为我的环境,因此我的程序只能接受 MATLAB 数据类型作为输入(char、bool、float、double 和 int)。我该如何将我的输入值分配给指针?
伪代码:
基本上,这可以被视为我硬编码指针的值,类似于:
我收到了这个错误:
``` error C2440: '=' : 无法从“double”转换为“double *” ```
我也尝试使用static/const/reinterpret/dynamic_cast,但我不太理解它们的工作原理(而且我也无法让它们工作)。手动分配内存地址值给指针可能吗?
伪代码:
// Outside of program
// double input_arg = hex2dec('00C2E4E8')
double *pointer;
pointer = (double *)input_arg;
// pointer == hex2dec('00C2E4E8')
基本上,这可以被视为我硬编码指针的值,类似于:
double *pointer = (double *)hex2dec('00C2E4E8');
我收到了这个错误:
``` error C2440: '=' : 无法从“double”转换为“double *” ```
我也尝试使用static/const/reinterpret/dynamic_cast,但我不太理解它们的工作原理(而且我也无法让它们工作)。手动分配内存地址值给指针可能吗?