求各位大神指导一下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);这个函数时第一个可以,第二个就不行呢???求各位帮帮忙了。
...全文
303 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);有什么区别啊……
  • 打赏
  • 举报
回复
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则是将字符串保存到数组中去。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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