社区
图形处理/算法
帖子详情
通过一次new申请空间,能够申请多大的内存空间?
yinghuashihun
2009-11-08 09:19:28
最近做了一个FFT的图像运算定义了一个结构体
typedef struct
{
double m_real;
double m_Image
}m_caplt;
m_caplt *x = new m_caplt[m_Width*m_Height] ;
m_Width 是图像的高度,m_Height是图像的宽度。图像的大小是1080*1920的8位bmp图片 一申请运行到这一步就不能往下运行了,所以我想问一下new能够申请多大的内存空间?
...全文
769
9
打赏
收藏
通过一次new申请空间,能够申请多大的内存空间?
最近做了一个FFT的图像运算定义了一个结构体 typedef struct { double m_real; double m_Image }m_caplt; m_caplt *x = new m_caplt[m_Width*m_Height] ; m_Width 是图像的高度,m_Height是图像的宽度。图像的大小是1080*1920的8位bmp图片 一申请运行到这一步就不能往下运行了,所以我想问一下new能够申请多大的内存空间?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anydaily
2009-12-20
打赏
举报
回复
double -> int
maple_zhj
2009-11-09
打赏
举报
回复
又不是Turbo C
我想,限制你的因素,
当然是你的内存吧。
老吴笔记
2009-11-09
打赏
举报
回复
这个不一定吧,我觉得只要你的内存足够大就可以了
peterormike
2009-11-09
打赏
举报
回复
[Quote=引用 3 楼 yinghuashihun 的回复:]
我知道行得通,但是如果m_Width*m_Height太大的话单步调试
m_caplt *x = new m_caplt[m_Width*m_Height];
这一步执行不过去,我的程序m_Width*m_Height的最大值为1024*1024
[/Quote]
执行不过去的时候 m_Width 和 m_Height 的值是多少?
liuchui2009
2009-11-09
打赏
举报
回复
[Quote=引用 3 楼 yinghuashihun 的回复:]
我知道行得通,但是如果m_Width*m_Height太大的话单步调试
m_caplt *x = new m_caplt[m_Width*m_Height];
这一步执行不过去,我的程序m_Width*m_Height的最大值为1024*1024
[/Quote]
应该行得通的吧
LZ的代码里面有没有在其他地方限制了m_Width*m_Height的大小?
许文君
2009-11-09
打赏
举报
回复
和你内存关联
yinghuashihun
2009-11-08
打赏
举报
回复
我知道行得通,但是如果m_Width*m_Height太大的话单步调试
m_caplt *x = new m_caplt[m_Width*m_Height];
这一步执行不过去,我的程序m_Width*m_Height的最大值为1024*1024
WFH1985
2009-11-08
打赏
举报
回复
不能是变量
leechrockgames
2009-11-08
打赏
举报
回复
int m_Width=1080,m_Height=1920;
typedef struct
{
double m_real;
double m_Image;
}m_caplt;
m_caplt *x = new m_caplt[m_Width*m_Height];
行得通的
LINUX能
new
最大
空间
是多少?
new
最大
空间
大小 = 操作系统剩余内存大小 + 操作系统剩余交换分区大小 另外,在测试过程中发现以下问题是我之前没注意到的,或者说是没细想过的: 1、单纯的
new
是不会实际占用
内存
空间
的,只要等到真正的用到时才会占用
内存
空间
。 2、
new
申请
的超出最大
空间
(剩余内存大小 + 剩余交换分区大小)后,才会报出异常且得到一个空指针。 3、int64_t nSize = 1024 * 10...
C++ 使用
new
申请
内存
new
是C++语言中用来动态
申请
内存的关键字,返回的是
申请
到的内存单元的地址。使用方式为: 指针变量名 =
new
要存储数据的类型 e.g. int*add =
new
int ; *add = 121; # 或者直接赋值 int*add =
new
int(121); 举个简单的例子: int * addr =
new
int; *addr = 121; print(%d, *addr); >> 121 现在知道了
new
是动态
申请
内存的关键字,但是它与静态
申请
内存的方法有.
动态内存
申请
(malloc, calloc,
new
)之分配虚拟
内存
空间
和物理
内存
空间
动态内存
申请
(malloc, calloc,
new
)之分配虚拟
内存
空间
和物理
内存
空间
1. 动态内存
申请
的底层系统调用 动态内存
申请
函数根据
申请
的内存大小选择不同的系统调用,小于128K选择brk系统调用分配内存,大于128K选择mmap系统调用,使用strace可以清晰追踪到系统调用。 2. 虚拟地址
空间
和物理地址
空间
将虚拟内存地址映射到物理内存地址,叫做内存映射,映射关系缓存在一个叫页表的结构中,由MMU模块进行管理;MMU规定内存的映射最小单位,通常为4K, 每次映射,都需要关联4K或4K整数倍的
C++ 如何
一次
在堆上
申请
4G的内存?如何设计一个类只能在堆或者栈上创建对象?
1.如何
一次
在堆上
申请
4G的内存? 因为32位的环境下虚拟地址
空间
的大小只有4g,而光内核
空间
就需要1g,所以不可能
申请
得到,只有在64位的环境下才可以实现,只需要把执行环境改为64x即可 #include <iostream> using namespace std; int main() { void* p =
new
char[0xfffffffful]; cout <...
【C++】内存管理到用
new
申请
堆内存
C/C++下的内存管理,然后由C语言用malloc在堆上
申请
内存过渡到C++语言用
new
在堆上
申请
内存观察这两者的区别和差异,以及探究
new
的底层实现原理
图形处理/算法
19,472
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章