开发者社区> 问答> 正文

linux下c用malloc运行出错是什么原因? 400 请求报错 

比如这样:

int  k_splitters[9];

int * data;

/*

省略n段代码

*/

data = (int *)malloc(sizeof(int) * count); //这边程序就出错了

但是这样就不会有问题:

int * data;

/*

省略n段代码

*/

data = (int *)malloc(sizeof(int) * count); //没有问题

类似的,这样是会出错的:

int  *data;

int * data1;

/*

省略n段代码

*/

data = (int *)malloc(sizeof(int) * count);

/*

省略n段代码

*/

data1 = (int *)malloc(sizeof(int) * count1); //这边程序就出错了

内存应该是够的,因为请求的空间也不大。 

展开
收起
kun坤 2020-05-30 17:25:04 514 0
1 条回答
写回答
取消 提交回答
  • 多检查代码, 不要轻易下结论. 可以负责任的说, 是你的代码问题, 而不是什么malloc的问题.

    ######我也知道肯定是代码有问题,我就是问这个的。时候还不容易没错了,但只是在程序中加个没什么意义的 int k = 2; 就异常了。 还有,我的malloc是在多进程里面调用的。 malloc在写并行 程序的时候有什么特别的地方吗?######malloc经得起时间检验,运行出错,大多都是你要么你不回收malloc开辟的资源,导致溢出,要么就是代码其他地方错误######把代码贴出来,有人给你看的。###### 用perror或者其他方式把对应的错误信息输出看看,具体是什么原因 ######单看这几行代码,最有可能的问题就是count 没有初始化。######没错,虽然不是count,但确实发现有个变量值有问题。代码一长,申请的内存多了问题就出现了。

    2020-05-30 17:25:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载