比如这样:
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); //这边程序就出错了
内存应该是够的,因为请求的空间也不大。
多检查代码, 不要轻易下结论. 可以负责任的说, 是你的代码问题, 而不是什么malloc的问题.
######我也知道肯定是代码有问题,我就是问这个的。时候还不容易没错了,但只是在程序中加个没什么意义的 int k = 2; 就异常了。 还有,我的malloc是在多进程里面调用的。 malloc在写并行 程序的时候有什么特别的地方吗?######malloc经得起时间检验,运行出错,大多都是你要么你不回收malloc开辟的资源,导致溢出,要么就是代码其他地方错误######把代码贴出来,有人给你看的。###### 用perror或者其他方式把对应的错误信息输出看看,具体是什么原因 ######单看这几行代码,最有可能的问题就是count 没有初始化。######没错,虽然不是count,但确实发现有个变量值有问题。代码一长,申请的内存多了问题就出现了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。