首页 > 编程知识 正文

malloc函数格式,c语言中malloc函数的头文件

时间:2023-05-04 15:47:38 阅读:49706 作者:4106

为什么不能多次使用malloc函数?

编写了程序

其中用许多数组进行大规模矩阵计算(由于采用分割统治法递归实现,中间数据特别多)。

不足以定义为静态数组(测试仅支持数百*数百个数组的乘法运算)。

所以采取malloc的形式,

但是,在运行时,会出现分段故障(core dumped )

测试结果表明,如果我坚持两三次malloc,程序就可以运行了。

如果我多次继续malloc,程序就会在运行中的malloc上出错并退出。 尽管我测试的矩阵很小,但内存并不不够。

程序本身应该没有问题。 因为如果使用静态数组,一切都很正常。

这样的问题,可能是从哪里出来的?

语音风暴(arg )。

structthread_args*arg;

{

浮动**A21,**A21;

float**B12,**B21;

float**C11、**C12、**C21、**C22;

float**MM1,**MM2;

structthread_argsthread[7];

inti,j;

intn=arg-n;

intm=n/2;

if(n==TN ) {

矩阵_多重(n,arg-A,arg-B,arg-C );

}else{

a12=(float** ) malloc ) m*sizeof ) float* );

a21=(float** ) malloc ) m*sizeof ) float* );

B12=(float** ) malloc ) m*sizeof ) float* );

B21=(float** ) malloc ) m*sizeof ) float* );

C11=(float** ) malloc ) m*sizeof ) float* );

C12=(float** ) malloc ) m*sizeof ) float* );

C21=(float** ) malloc ) m*sizeof ) float* );

C22=(float** ) malloc ) m*sizeof ) float* );

m1=(float** ) malloc ) m*sizeof ) float* );

m2=(float** ) malloc ) m*sizeof ) float* );

if (空值==a12||空值==a21||空值==B12||空值==b21 ) {

_error(err_mem;

}

if (null==c11|| null==c12|| null==c21|| null==c22|| null==mm1|| null==mm2 ) {

_error(err_mem;

}

for(I=0; I

a12[I]=(float* ) malloc (m * sizeof ) float );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。