-3

我有一些我的旧代码,我不明白我为什么要做一些事情。我有一个int_16t *q1024 个整数的指针。现在我正在尝试复制它:

       buffersRing[ringNum][0]=inNumberFrames;
       memcpy(buffersRing[ringNum]+1, q, inNumberFrames * sizeof *q); 

当数组中的第一个位置是某个 int 变量时,之后的所有其他位置都是 q。

但是,为什么我没有这样做(以及有什么区别):

    buffersRing[ringNum][0]=inNumberFrames;
    memcpy(buffersRing[ringNum][1], q, inNumberFrames * sizeof *q); 

是否试图将所有 q 个整数放在数组的第一位?还是一样?

4

1 回答 1

2

不,

buffersRing[ringNum]+1 // refers to a pointer to an array element

不一样

buffersRing[ringNum][1] // refers to the actual array element

第一个是你想要的。

于 2013-09-19T15:14:18.613 回答