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);在一个按钮的单击函数这样写的,执行没问题,可是关闭这个窗口的时候提示内存...错误
请问为什么?

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

    #define ASCII_CR  0x0D
    #define ASCII_LF  0x0A
      

  5.   

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