1

私はCプログラミングの新規ユーザーです。これをオンラインで調べてみましたが、答えが見つかりませんでした... Cの配列の一部にアクセスするにはどうすればよいですか?例えば、

int Data[4]
int Input[32]

実行するための構文は何ですか:Data = Input [12:15]

Data[0] = Input[12]
Data[1] = Input[13]
Data[2] = Input[14]
Data[3] = Input[15]

実際には、TCPソケットを使用して配列の一部を埋めようとしています。

recv(MySocket, YRaw[indx:indx+1024], sizeChunk, 0)

ここで、受信したデータを配列インデックス「indx」から「indx+1024」までのYRaw配列に配置します。

よろしくお願いします、gkk

4

3 に答える 3

1

ある配列から別の配列に物事をコピーするには、次を使用できますmemcpy

#include "string.h"

memcpy(&input[12], &data[0], 4*sizeof(int)); /* source, destination, number of bytes to copy */

recvの場合、同じことを行います。開始へのポインターとバイト数を渡します。

recv(sock, &YRaw[indx], sizeChunk*sizeof(int), 0); /* sizeChunk is hopefully 1024 */

編集: 2番目の例のsizeofを忘れたので、追加しました。

于 2010-08-27T22:37:48.113 に答える
0

memcpyを使用できます

于 2010-08-27T22:36:34.810 に答える
0

ポインタ演算を使用できます。

recv(MySocket, YRaw + indx, sizeof(int) * 1024, 0);

この場合、recvは最初のintをYRaw [indx]に配置し、2番目のintをYRaw [indx+1]に配置します。

この例では、ソケットから整数を読み取りたいと想定しました。

また、戻り値を確認することを忘れないでください。

于 2010-08-27T22:44:05.650 に答える