二维数组简单易懂

时间:2013-09-19 15:08:28

标签: c

我有一些我的旧代码,我不明白为什么我做了一些事情。 我有一个1024 {1}的int_16t *q指针。现在我想用以下方法复制它:

       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 ints放入数组的第一位?还是一样?

1 个答案:

答案 0 :(得分:2)

没有

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

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

第一个是你想要的那个。