为什么这样写不对呀?
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




