0

ログが間違ってい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);

間違った値を取得します。ここで何が問題なのですか?

編集:

しかし、コピーの代わりにこれを行うとうまくいきます:

 for( int k=1;k<inNumberFrames+1;k++)
     buffersRing[ringNum][k]=q[k-1];
4

2 に答える 2

0

通話の発信元と宛先がmemcpy重複しているようです。

そのような場合は電話memmoveしてください。

于 2013-01-21T17:59:45.750 に答える
0

への呼び出しは次のようにするmemcpy()必要があると思います:

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

inNumberFramesの1つの要素が占めるバイト数をコピーしたいのでq

于 2013-01-21T17:58:47.430 に答える