CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

为什么这样写不对呀?

楼主zhuzy2004(抄手)2006-01-24 15:21:19 在 VC/MFC / 基础类 提问

char   cr   =   (char)ASCII_CR;  
  char   lf   =   (char)ASCII_LF;  
   
  char   comm[50]   =   "AT";  
  char   *   atstr   =   (char*)malloc(strlen(comm)   +   10);  
   
  strcpy(atstr,   comm);  
  strcat(atstr,   &cr);  
  strcat(atstr,   &lf);  
   
  在一个按钮的单击函数这样写的,执行没问题,可是关闭这个窗口的时候提示内存...错误  
  请问为什么?  
  问题点数:20、回复次数:6Top

1 楼syy64(太平洋)回复于 2006-01-24 15:49:01 得分 2

char   comm[50]   =   "AT";  
  感觉有问题。Top

2 楼alen_ghl(东方求*)回复于 2006-01-24 16:04:17 得分 8

strcat(atstr,   &cr);  
  strcat(atstr,   &lf);  
   
  strcat   第二个参数为   const   char   *  
  你把一个字符的地址做参数,那strcat则从&cr地址开始的位置直到'\0',是一个未知位置Top

3 楼gaoqiang1226()回复于 2006-01-24 16:08:42 得分 0

ASCII_CR指的是什么?Top

4 楼ouyh12345(五岭散人)回复于 2006-01-24 16:16:30 得分 2

同意alen_ghl(东方求*)   。  
  应该是:  
  strcat(atstr,   cr);Top

5 楼zhuzy2004(抄手)回复于 2006-01-24 16:55:25 得分 0

#define   ASCII_CR     0x0D  
  #define   ASCII_LF     0x0A  
   
  Top

6 楼Mackz(在相互)回复于 2006-01-24 18:16:00 得分 8

char   comm[50]   =   "AT\r\n";  
  char   *   atstr   =   (char*)malloc(strlen(comm)   +   1);  
   
  strcpy(atstr,   comm);  
   
  还有用完了别忘了free()。Top

相关问题

  • c#中这样写为什么不对?
  • 请问这样写为什么不对?
  • 这样写为什么不对?
  • 为什么这样写不对?
  • 这样写为什么不对???
  • 为什么要这样写?
  • 为什么要这样写?
  • 为什么这样对我!!!
  • 这样为什么不对?
  • 这样写为什么不对?请指教

关键词

  • atstr
  • strcat
  • comm
  • cr
  • lf
  • ascii
  • char

得分解答快速导航

  • 帖主:zhuzy2004
  • syy64
  • alen_ghl
  • ouyh12345
  • Mackz

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo