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