我有一些我的旧代码,我不明白为什么我做了一些事情。
我有一个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放入数组的第一位?还是一样?
答案 0 :(得分:2)
没有
buffersRing[ringNum]+1 // refers to a pointer to an array element
与
不同buffersRing[ringNum][1] // refers to the actual array element
第一个是你想要的那个。