https://whycan.cn/files/members/3/QQ20181201093927.png
把49行注释起来, 就不会出现内存释放错误, 20000阶乘就算出来了.
------------------------
错不在这!
而是这里
改为这样:
char* order(int n)
{
char temp[16];
char* res = (char*)"1"; //删除
char* res = (char*)malloc(32); //改正后
for ( ; n > 1; n--)
{
sprintf((char*)temp, "%d", n);
res = mult1(res, (const char*)temp);
}
return res;
}
就可以了。