首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何寻址(1-D)数组的一部分?

如何寻址(1-D)数组的一部分?
EN

Stack Overflow用户
提问于 2010-08-28 06:32:52
回答 3查看 54关注 0票数 1

我是C编程的新手。我试着在网上研究这个问题,但是找不到答案...如何在C中访问数组的一部分?例如,

代码语言:javascript
复制
int Data[4]
int Input[32]

这样做的语法是什么: Data = Input12:15

代码语言:javascript
复制
Data[0] = Input[12]
Data[1] = Input[13]
Data[2] = Input[14]
Data[3] = Input[15]

实际上,我正在尝试使用TCP套接字填充数组的一部分:

代码语言:javascript
复制
recv(MySocket, YRaw[indx:indx+1024], sizeChunk, 0)

我希望接收到的数据放在YRaw数组中,从数组索引'indx‘到'indx+1024’。

提前谢谢你,gkk

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-28 06:37:48

要将内容从一个数组复制到另一个数组,可以使用memcpy

代码语言:javascript
复制
#include "string.h"

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

在recv的情况下,您可以做同样的事情-传入指向开始的指针和字节数:

代码语言:javascript
复制
recv(sock, &YRaw[indx], sizeChunk*sizeof(int), 0); /* sizeChunk is hopefully 1024 */

sizeof编辑:我忘记了第二个例子中的,所以我添加了它。

票数 1
EN

Stack Overflow用户

发布于 2010-08-28 06:36:35

可以使用memcpy

票数 0
EN

Stack Overflow用户

发布于 2010-08-28 06:44:06

你可以使用指针算法:

代码语言:javascript
复制
recv(MySocket, YRaw + indx, sizeof(int) * 1024, 0);

在本例中,recv将把第一个int放在YRawindx,第二个放在YRawindx + 1,依此类推。

在本例中,我假设您希望从套接字中读取整数。

另外,别忘了检查返回值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3588566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档