-3

なぜ私が何かをしたのか理解できない私の古いコードがあります。int_16t *q私は1024 intsのポインタを持っています。今私はそれをコピーしようとしています:

       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 を array の最初の場所に入れようとしていますか? それとも同じですか?

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 に答える