char sendbuf[] 的问题

wangsiyuanoo 2009-04-24 04:02:11
string strTm = strAllTxt;
int iLength = strTm.length();
char sendbuf[] = {0}; //[]这里面不能加变量,但我没有实现固定一个buf,需要计算得到,怎么办?
strcpy_s(sendbuf, strTm.c_str());
...全文
439 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lori227 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lori227 的回复:]
照你的写法~~这样不就可以了么

C/C++ code
Infofile.Write(strTm.c_str(), strTm.length() + 1);
Infofile.Close();
[/Quote]

这样不行的么~~
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lori227 的回复:]
直接用string 不行的么~~~ 干嘛要绕一圈用char*
[/Quote]
string 应该怎么写啊
我以为写文件只能这么写呢......
请教一下怎么改
谢谢~~~~~~
Sou2012 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hairetz 的回复:]
用malloc或者new动态实现.

或者用封装了动态实现的容器也可以.
[/Quote]

学习了!
lori227 2009-04-24
  • 打赏
  • 举报
回复


strcpy_s(sendbuf, iLength, strTm.c_str());

lori227 2009-04-24
  • 打赏
  • 举报
回复
直接用string 不行的么~~~ 干嘛要绕一圈用char*
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lori227 的回复:]
照你的写法~~这样不就可以了么

C/C++ code
Infofile.Write(strTm.c_str(), strTm.length() + 1);
Infofile.Close();
[/Quote]
难道不需要delete么??
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复
错误是:

Windows 已在 ChineseToEnglish.exe 中触发一个断点。

其原因可能是堆被损坏,这也说明 ChineseToEnglish.exe 中或它所加载的任何 DLL 中有 bug。

输出窗口可能提供了更多诊断信息
lori227 2009-04-24
  • 打赏
  • 举报
回复
照你的写法~~这样不就可以了么

Infofile.Write(strTm.c_str(), strTm.length() + 1);
Infofile.Close();
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复

string strTm = strAllTxt;
int iLength = strTm.length() + 1;
char * sendbuf = new char[iLength];
strcpy_s(sendbuf, strlen(sendbuf), strTm.c_str());
Infofile.Write(sendbuf, iLength);
Infofile.Close();
delete [] sendbuf; //这样有写有问题么?为什么会报错?
  • 打赏
  • 举报
回复
用malloc或者new动态实现.

或者用封装了动态实现的容器也可以.
zhangxuyu1118 2009-04-24
  • 打赏
  • 举报
回复
memcpy(sendbuf, buf, bufLen);
lori227 2009-04-24
  • 打赏
  • 举报
回复

strcpy_s(sendbuf, strlen(sendbuf), strTm.c_str());
nextel 2009-04-24
  • 打赏
  • 举报
回复
要加1
cyldf 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangsiyuanoo 的回复:]
引用 1 楼 baiwei156 的回复:
char *sendbuf=new char[iLength];

iLength要不要加1啊
[/Quote]
要加1装'\0'
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复
不行啊
string strTm = strAllTxt;
int iLength = strTm.length();
char * sendbuf = new char[iLength];
strcpy_s(sendbuf, strTm.c_str()); //错误:“strcpy_s”: 函数不接受 2 个参数
lori227 2009-04-24
  • 打赏
  • 举报
回复
直接用string 不行吗?
wangsiyuanoo 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baiwei156 的回复:]
char *sendbuf=new char[iLength];
[/Quote]
iLength要不要加1啊
operatingtuzi 2009-04-24
  • 打赏
  • 举报
回复
恩 动态分配 一楼已经写了。。
lingyin55 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 wangsiyuanoo 的帖子:]
C/C++ codestring strTm = strAllTxt;
int iLength = strTm.length();
char sendbuf[] = {0}; //[]这里面不能加变量,但我没有实现固定一个buf,需要计算得到,怎么办?
strcpy_s(sendbuf, strTm.c_str());
[/Quote]

可以用new或者用容器实现。
baiwei156 2009-04-24
  • 打赏
  • 举报
回复
char *sendbuf=new char[iLength];

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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