我记错了memcpy
日志。
我想使用*q
(数组上大小为inNumberOfFrames
的指针)。
我想每次将其复制到一个新的数组buffersRing[ringNum][inNumberOfFrames]
中。
在buffersRing[ringNum][0]
中时,我保存q的大小-inNumberOfFrames
,其余q保存到buffersRing[ringNum][1]-buffersRing[ringNum][inNumberOfFrames]
中。
我做 :
buffersRing[ringNum][0]=inNumberFrames;
memcpy(buffersRing[ringNum]+1, q, inNumberFrames);
我得到错误的值。这是怎么了?
编辑:
但是这样做而不是copy-works great:
for( int k=1;k<inNumberFrames+1;k++)
buffersRing[ringNum][k]=q[k-1];
最佳答案
我相信对memcpy()
的调用应该是:
memcpy(buffersRing[ringNum]+1, q, inNumberFrames * sizeof *q);
因为您要复制
inNumberFrames
乘以q
的一个元素所占用的字节数。关于c - 从索引1开始的错误memcpy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14444362/