如何解决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编辑过]







