关于malloc内存分配的问题,求大神,是不是因为没有内存对齐的缘
c语言吧
全部回复
仅看楼主
level 8
wangbiao170 楼主
方式一、
double* VAL_DIA = (double*)malloc(VAL_DIA_size*sizeof(double));
方式二、
void* new_array(int number,int size){
void* a = (void*)malloc(number*size);
return a;
}
double* VAL_DIA=(double*)new_array(VAL_DIA_size,sizeof(double));
这两种方式开辟内存有什么区别吗?为什么第二种在使用的时候会出错。
错误报告:Segmentation fault (core dumped)
2015年01月20日 03点01分 1
level 13
[汗]
2015年01月20日 04点01分 2
level 10
你这个a的作用域又不是全局的,你给他动态分配内存怎么能return呢
new_array()执行完后分配的内存就被释放了
2015年01月20日 05点01分 3
多谢多谢,我再试试
2015年01月20日 05点01分
a这个没问题,return是把a指向的地址赋值出来 ,回收的是a的空间 不是a指向地址的空间
2015年01月20日 05点01分
level 13
。。。。论return
--(10²-10²)/(100-100)=(10-10)(10+10)/(10-10)/10=2
2015年01月20日 05点01分 4
多谢。。
2015年01月20日 05点01分
level 11
你代码贴全了吗 函数中返回没啥问题 函数外记住释放就可以了 代码贴全看看 在哪一行出现的问题
2015年01月20日 05点01分 5
level 12
问题不是出在这。
2015年01月20日 06点01分 6
1