如何解决malloc多分配的空间
											malloc分配的空间在之后的使用中未完全使用完,如何解决?最后四行代码是什么意思? 程序代码:
程序代码:char * addBinary(char * a, char * b){
    int  i,k,j,len;
    int  c;
    c=0;
    j=strlen(a);
    k=strlen(b);
    len=j>k?j:k;
    char *res=(char *)malloc(sizeof(char)*(len+2));
    res[len+1]='\0';
    i=len-1;
    while(i>=0)
    {
        if(j-1>=0&&k-1>=0){
        if(a[j-1]-'0'+b[k-1]-'0'+c==2)
        {
            res[i]='0';
            c=1;
        }else
        {
            res[i]=a[j-1]-'0'+b[k-1]-'0'+c;
            c=0;
        }}
        if(j-1<0)
        {
            if(b[k-1]-'0'+c==2)
            {
                res[i]='0';
                c=1;
            }else{
                res[i]=b[k-1]-'0'+c;
                c=0;
            }
        }
        if(k-1<0)
        {
            if(a[j-1]-'0'+c==2)
            {
                res[i]='0';
                c=1;
            }
            else{
                res[i]=a[j-1]-'0'+c;
                c=0;
            }
        }
        i--,j--,k--;
    } 
    if(c>0)
        res[0]='1';
    else 
        *res++;
    return res;
}大佬要是有时间顺便解决一下为什么输出会有"10�"这个问号
[此贴子已经被作者于2019-12-8 17:12编辑过]



 
											





 
	    

 
	

