在我的以下代码中,我将buffer
设为使用malloc(r * c * sizeof(double*));
创建的二维数组。我想用memcpy
将buffer
的前12个元素(即前4行)复制到第二个temp
。使用memcpy复制内存块时的问题
double *buffer = malloc(10 * 3 * sizeof(double*));
double *temp = malloc(4 * 3 * sizeof(double*));
for (int i = 0; i < 4; ++i) {
memcpy(*(temp+ i*3), *(buffer + i*3), 3 * sizeof(double));
}
我得到这个错误:
memcpy(*(temp+ i*3), *(buffer + i*3), 3 * sizeof(double));
^~~~~~~~~~~~~~~~~~~~~~~~~~
有人能告诉我为什么吗?
预先感谢您。
当然这不是编译器的诊断的全部? – EOF
没有二维数组,而是一维数组。任何你不使用二维数组的原因,但手动做索引数学? – Olaf
什么是错误信息?看[问]并提供[mcve]。 – Olaf