http://expert.csdn.net/Expert/topic/1784/1784487.xml?temp=.1915857

解决方案 »

  1.   

    我试了一下发现是free(aa);的问题!为什么会出现这种问题呢?我想还是你char* aa=(char*)malloc(3*sizeof(char));这句早请空间的语句有问题,还是早请的空间不够!比如你这里aa代表一个3字节的空间,而从for(int j=0;j<charnum;j++){
    int cc=j*8;
    for(int i=0;i<=7;i++)
    {
    int a=pow(2,7-i);
    if((inputchar[j]&a)==a)
    outstr[i+cc]='1';
    else
    outstr[i+cc]='0';
    这个语句可以看出你却事实上动用了2(j的最大值)*8+7(i的最大值)+1(结束符)共计24字节的内存!
    那么你在free(aa)的时候自然就有问题了!所以当给aa分配的内存等于或大于24字节时就不会有错!