所以在我的函数中,我传递了一个参数const float* const d_inputArray
如何阅读其内容并复制到其他阵列float* d_tempInput
?
我不知道怎么处理const。
答案 0 :(得分:0)
假设两个指针都指向相同大小的缓冲区:
memcpy(d_tempInput, d_inputArray, LENGTH_OF_BUFFER_IN_BYTES);
答案 1 :(得分:0)
/* malloc memory for d_tempInput */
d_tempInput = (float *) malloc(sizeof(d_inputArray));
/* memcpy everything from d_inputArray into d_tempInput */
memcpy(d_tempInput, d_inputArray, sizeof(d_inputArray));
/* Free when done */
free(d_tempInput);
答案 2 :(得分:0)
关键字const
表示指针指向的内存区域的内容。
请勿将此与常量指针(由float * const pntr
构造)混淆。阅读Constant Pointers and Pointers to Constants了解更多信息。
代码
交互式版本:here
#include <iostream>
#include <cstring>
int main()
{
size_t N = 3;
const float a[N] = {100, 101, 102};
//float *b = a; // not possible
float *b = new float[N];
std::memcpy(b, a, N*sizeof(float));
const float *c = b;
for (size_t ii = 0; ii < N; ++ii)
{
std::cout << a[ii] << "; " << b[ii] << "; " << c[ii] << std::endl;
}
delete b;
return 0;
}
输出
100; 100; 100
101; 101; 101
102; 102; 102