如何将const float*const复制到float*

  • 本文关键字:float const 复制 c++ c
  • 更新时间 :
  • 英文 :


所以在我的函数中,我被传递了一个参数const float* const d_inputArray如何读取其内容并复制到不同的数组float* d_tempInput?我不知道该如何处理这两个问题。

假设两个指针都指向相同大小的缓冲区:

memcpy(d_tempInput, d_inputArray, LENGTH_OF_BUFFER_IN_BYTES);

/* 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);

示例:const float*->浮动*->常量浮点*

关键字const是指指针指向的存储区域的内容。

不要将其与常量指针(由float * const pntr构造)混淆。请阅读常量指针和指向常量的指针以了解更多信息。

代码

交互式版本:此处

#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

最新更新