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 */

编辑:我忘记了第二个示例中的 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],第二个放在 YRaw[indx + 1],依此类推。

在这个例子中,我假设你想从套接字中读取整数。

另外,不要忘记检查返回值。

于 2010-08-27T22:44:05.650 回答