我是C编程的新用户。我试过在线研究这个,但找不到答案......如何在C中访问数组的一部分?例如,
int Data[4]
int Input[32]
做什么的语法:数据=输入[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)
我希望收到的数据放在YRaw数组中,从数组索引'indx'到'indx + 1024'。
提前致谢,gkk
答案 0 :(得分: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,所以我添加了它。
答案 1 :(得分:0)
可以使用memcpy
答案 2 :(得分:0)
你可以使用指针算术:
recv(MySocket, YRaw + indx, sizeof(int) * 1024, 0);
在这种情况下,recv将第一个int放在YRaw [indx],第二个放在YRaw [indx + 1],依此类推。
在这个例子中,我假设你想从套接字中读取整数。
另外,不要忘记检查返回值。