Bla*_*art -2 c malloc defragmentation
我正在写一个C代码来解决欧拉方程.我的代码在集群上工作得很好,但在我的电脑上却没有.似乎是malloc()的一个问题.它无法分配请求的内存并失败.
我如何使它工作?它是否与碎片整理有关?但系统设置显示(0%碎片整理).
在这里只包含一部分malloc()代码.
double **u, **rho_u, **rho,
int Size = 1000;
u = (double**)malloc(Size*sizeof(double*));
for(i=0;i<=Size;i++)
u[i] = (double*)malloc(Size*sizeof(double));
rho_u = (double**)malloc(Size*sizeof(double*));
for(i=0;i<=Size;i++)
rho_u[i] = (double*)malloc(Size*sizeof(double));
Run Code Online (Sandbox Code Playgroud)
你可能在这里腐败了你的堆:
for(i=0;i<=Size;i++)
u[i] = (double*)malloc(Size*sizeof(double));
Run Code Online (Sandbox Code Playgroud)
您分配了1001个指针,但只分配了1000个指针.正确版本:
for(i=0;i<Size;i++)
u[i] = (double*)malloc(Size*sizeof(double));
Run Code Online (Sandbox Code Playgroud)
第二个循环相同.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |