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);在一个按钮的单击函数这样写的,执行没问题,可是关闭这个窗口的时候提示内存...错误
请问为什么?
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);在一个按钮的单击函数这样写的,执行没问题,可是关闭这个窗口的时候提示内存...错误
请问为什么?
感觉有问题。
strcat(atstr, &lf);strcat 第二个参数为 const char *
你把一个字符的地址做参数,那strcat则从&cr地址开始的位置直到'\0',是一个未知位置
应该是:
strcat(atstr, cr);
#define ASCII_LF 0x0A
char * atstr = (char*)malloc(strlen(comm) + 1); strcpy(atstr, comm);还有用完了别忘了free()。