Linux下memset大内存时报错(地址越界)
来源:互联网 发布:mac 查看沙盒软件 sim 编辑:程序博客网 时间:2024/06/06 04:47
我在Linux下开发时,要申请一块3M左右的内存来存放图片的二进制数据,一开始这样写:
int size =800*600*4;
uchar data[size];
memset(data, 0, size);
运行程式时,在memset时报错,程序终止。后网上查,发现是内存溢出的问题:因为memset是申请分配在栈上,而linux系统一个线程(你运行程序的线程)分配一定总内存,
可以通过ulimit -s 查看,我的是8192(KB):
james@ubuntu:~/Desktop$ ulimit -s
8192
再加上程式中别的内存消耗,估计是溢出了,所以改用malloc来分配内存:
uint num = g_nMMI_WIDTH*g_nMMI_HEIGHT;
const int NS = num*4;
uchar *dt = (uchar *)malloc(NS);
至此,问题解决
0 0
- Linux下memset大内存时报错(地址越界)
- Linux环境下合理配置大内存页(HugePage)
- linux大内存Hugepages优化
- 结构或大内存块打包的办法(下)
- 结构或大内存块打包的办法(下)
- 结构或大内存块打包的办法(下)
- linux大内存页 HugePages on Linux
- linux大内存页 HugePages on Linux
- linux大内存页 HugePages on Linux
- Windows(x86)下大内存的分配
- 如何使linux扩展使用 大内存
- Linux malloc大内存的方法
- Linux大内存页Oracle数据库优化
- 在 Linux 和 Windows 下给 Tomcat 分配大内存设置方法
- 在 Linux 和 Windows 下给 Tomcat 分配大内存设置方法
- linux下Oracle通过设置大内存页解决使用swap分区问题
- linux下Oracle通过设置大内存页解决使用swap分区问题
- 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)
- vs2010下V C++调用C#编写的dll时可能遇到的问题
- 2016.09.29 queue.h
- android 获取相册图片和使用相机照照片 并使用Android自带图片剪裁界面剪裁
- [LeetCode]70. Climbing Stairs
- 字符串转十六进制
- Linux下memset大内存时报错(地址越界)
- Hiho 1385 模拟,细节
- 归并排序递归及非递归实现(自然合并排序)
- HDU 2837Calculation
- RCNN--Fast-rcnn--Faster RCNN(思路整理)
- 移动端页面在苹果手机中需要主要的问题
- 项目问题汇总
- 利用通道以及递归方法拷贝文件的代码案例
- 【JavaScript】严格模式详解