将一个字符串拷贝到一维的指针数组中,指定的位置

f2081 2014-04-10 03:29:34
我想实现的是:
1、先申请一个一维数组指针
int i1=40;//i1是数组的个数
char *s1=new char[i1*512*sizeof(char)];//这个数组是每个是512字节,一共i1个的一维数组
2、通过socket接收,传来的数组,但,顺序是不一定连续的。这就是需要将接收到的分片段,放到s1的对应的位置
比如:
//recv_s2;//是接收的buf
strncpy(
s1+i2*512,
recv_s2,
510
);
但是,这样是不行的。报错,内存越界。不知道如何实现?
请大侠们指点指点啊。谢谢
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
f2081 2014-04-10
  • 打赏
  • 举报
回复
memcpy( recv_s2++i2*512, recv_s2, 510 ); 这样吗? 好像不行啊。也报错,不过还没找到错误的原因。我以为这样可以呢 大侠们。帮我看看吧
starytx 2014-04-10
  • 打赏
  • 举报
回复
用memcpy
dbzhang800 2014-04-10
  • 打赏
  • 举报
回复
你应该用memcpy吧
zybjtu 2014-04-10
  • 打赏
  • 举报
回复
显然是buffer不够大啊。 从s1+i2*512 这开始,放不下你的recv_s2 或者recv_s2中的510字节
f2081 2014-04-10
  • 打赏
  • 举报
回复
谢谢大侠们啦。 这个问题是不是很有实用性啊

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧