求各位大神指导一下sprintf这个函数

PENGH56 2013-01-22 03:40:05
这是我的程序:
char *q;
q="CREATE SINK CLASS 'Sink1' LOCATE ELEMENT Sink1_1' AT 1000, 0, 0 ";
与sprintf(q,"CREATE SINK CLASS 'Sink%d' LOCATE ELEMENT Sink%d_1' AT %d, %d, 0 ",1,1,1000,0);有什么区别啊,为什么我调用net_writesocket(sockdsc,q);这个函数时第一个可以,第二个就不行呢???求各位帮帮忙了。
...全文
275 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
c1997sdn 2013-01-27
第二个不行,是因为你没有预先给指针q分配空间, 在sprintf函数前面加一句: q = new char[1024];
引用 楼主 PENGH56 的回复:
这是我的程序: char *q; q="CREATE SINK CLASS 'Sink1' LOCATE ELEMENT Sink1_1' AT 1000, 0, 0 "; 与sprintf(q,"CREATE SINK CLASS 'Sink%d' LOCATE ELEMENT Sink%d_1' AT %d, %d, 0 ",1,1,1000,0);有什么区别啊……
  • 打赏
  • 举报
回复
zhangyihu321 2013-01-26
char q[1024] 在初始化0
  • 打赏
  • 举报
回复
这不是鸭头 2013-01-22
没有分配内存空间 new
  • 打赏
  • 举报
回复
jimette 2013-01-22
sprintf(q,"CREATE SINK CLASS 'Sink%d' LOCATE ELEMENT Sink%d_1' AT %d, %d, 0 ",1,1,1000,0); 要保存到一个buffer中 char q[1024] 可以!
  • 打赏
  • 举报
回复
LuciferStar 2013-01-22
你的q只是一个指针,而sprintf则是将字符串保存到数组中去。
  • 打赏
  • 举报
回复
相关推荐
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2013-01-22 03:40
社区公告
暂无公告