thuzhangga 于 2016.01.28 23:45 提问

``````#include"stdlib.h"
#include"malloc.h"
{
int digit1=_msize(a)/4;
int digit2=_msize(b)/4;
int digit=_msize(a)/4>=_msize(b)/4?_msize(a)/4:_msize(b)/4;
printf("enter:a=");
for(int i=0;i<digit1;i++)
printf("%d",a[i]);
printf(" b=");
for(int i=0;i<digit2;i++)
printf("%d",b[i]);
int *re=(int *)calloc(digit+1,4);
int *d=(int *)calloc(digit+1,4);
int *e=(int *)calloc(digit1,4);
for(int i=0;i<digit2;i++)
e[i]=b[i];
for(int i=0;i<digit;i++)
{
d[i+1]=(a[i]+e[i])/10;
re[i]=(a[i]+e[i]+d[i])%10;
}
re[digit]=d[digit];
free(d);
free(e);
if(re[digit]==0)
{
realloc(re,digit*4);
printf(" out: ");
for(int i=0;i<digit;i++)
printf("%d",re[i]);
printf("\n");
return re;
}
else
{
printf(" out:");
for(int i=0;i<digit+1;i++)
printf("%d",re[i]);
printf("\n");
return re;
}
}
void main()
{
int *fr=(int *)malloc(sizeof(int));
fr[0]=1;
int *af=(int *)malloc(sizeof(int));
af[0]=1;
while(true)
{
int *temp=fr;
fr=af;
if(_msize(af)/4==1000)
{
for(int j=0;j<(_msize(af)/4);j++)
printf("%d",af[j]);
break;
}
}
}

``````

3个回答

caozhy      2016.01.29 05:46

`````` #include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include"string.h"

{
char c[1200];
int lena=strlen(a),lenb=strlen(b);
int i,len;
len=lena>lenb?lena:lenb;
len++;
c[0]='\0';
for(i=1;i<=len;i++)c[i]='0';
for(i=1;i<=lena;i++)c[i]+=a[lena-i]-48;
for(i=1;i<=lenb;i++)c[i]+=b[lenb-i]-48;
for(i=0;i<=len;i++)
if(c[i]>57)
{
c[i]-=10;
c[i+1]++;
}

for(i=len;i>1;i--)
if(c[i]==48)len--;
else break;
for(i=0;i<=len;i++)
d[i]=c[len-i];
}

void main()
{
char a[1200];
char b[1200];
char c[1200];
a[0] = '1';
a[1] = '\0';
b[0] = '1';
b[1] = '\0';
int i = 3;
while (true)
{
if (strlen(c) >= 1000) break;
i++;
strcpy(a, b);
strcpy(b, c);
}
printf("%d\n", i);
printf("%s\n", c);
}
``````
caozhy      2016.01.29 05:46
`````` 4782
10700662663827589367649805844573968850836838966321516650132352033753145206046940
40621889147582489792657804694888177591957484336466672569959512996030461262748092
48218614406943305123477444275027378175308757939166619214925918675955396642283714
89431130746995034395470019854326097230672901928705264472437261177158218255484911
20525013201478612965931381792235559657452039506137551467837543229119602129934048
26070617539770684706820289548690266618543512452190036948064135744747091170761976
69456910700980243934396174741037369125032313655321647736970231677550515951735184
60579954919410967778373229665796581646513903488154256310184224190259846088000110
18625555024549393711365165703944762958471454852342595042858242530608354443542821
26110089928637950480068943303097732178348645431132057656598684562886168087186938
35297350643986297640660000723562917905207051164077614812491885830945940566688339
10935094445657635766615161931775379289166158132715961687748798382182049252034847
3874384736771934512787029218636250627816
Press any key to continue
``````
91program      2016.01.29 09:10

new 来的内存，最后都不释放的？

thuzhangga 但是很感谢您的解答
2 年多之前 回复
2 年多之前 回复
91program 不好意思，是 malloc。
2 年多之前 回复

python里怎么终止程序的执行？
python里怎么终止程序的执行？   import sys sys.exit(0)     Or you can use: raise SystemExit   If you are using IDLE: just use "quit()"

1.类的加载当程序要使用某个类时，如果该类还未被加载到内存中，则系统会通过加载，连接，初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存，并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。连接验证 是否有正确的内部结构，并和其他类协调一致 准备 负责为类的静态成员分配内存，并设置默认初始化值 static{}语句块 解析 将类的二进制数据中的符号
C++ 程序稳定运行一段时间后异常中止，为什么？vc6 运行库的bug!!!

【IDE-Visual Studio】vs2010 -MFC-查看程序执行过程

jq中如何阻止程序的运行

Linux 停止当前正在运行程序
1、终端执行shell命令 得到进程PID ps -e | grep ‘test’ | awk ‘{print \$1}’ 12478 其中test为进程名 杀进程 kill -9 12478 2、代码 #include <stdio.h> #include <string.h> #include <stdlib.h> void stop(

Windows程序设计（SDK）窗口过程---程序 的关闭
/* 程序的关闭： 点击右上角 叉叉按钮 会发送 WM_CLOSE消息 (如果 需要 判断 用户是否确定 关闭 需要 捕获 WM_CLOSE消息 然后询问 然后 IDYES后 就执行DestroyWindow函数) 再执行DestroyWindow()函数 发送 WM_DESTROY消息 然后 就关闭的窗口 此时 再 执行 PostQuitMessage(0)
C语言里程序编译无误但运行会弹出程序已停止运行是为什么？
C语言里程序编译无误但运行会弹出程序已停止运行是为什么？原文链接(https://zhidao.baidu.com/question/1178139670043658699.html) 摘要 1. 内存溢出 内存溢出（out of memory）通俗理解就是内存不够，程序所需要的内存远远超出了主机内安装的内存所承受大小，就叫内存溢出。系统会提示内存溢出，有时候会自动关闭软