设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
C\C++
›
gcc和g++编译时是不是对栈的大于进行了限制(急!!!) ...
返回列表
查看:
984
|
回复:
7
gcc和g++编译时是不是对栈的大于进行了限制(急!!!)
[复制链接]
tigeroar
tigeroar
当前离线
积分
299
IP卡
狗仔卡
发表于 2005-1-12 21:38:10
|
显示全部楼层
|
阅读模式
我在一个类中,定义了一个很大的
数组
大小有1024*512*15*sizeof(long)
就是30M
在C++ builder下编译执行都没有问题。
但在G++下面编译没问题,执行时出现段错误。
在VC下面就编译不过去。
各位高手帮忙,
急用,谢谢。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
tigeroar
tigeroar
当前离线
积分
299
IP卡
狗仔卡
楼主
|
发表于 2005-1-12 21:41:39
|
显示全部楼层
试了一下,放在类外面好象就可以用了。
为什么放在类里面不可以用?高手指教。
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2005-1-13 10:53:52
|
显示全部楼层
定义那么大的数组做什么?有这个必要吗?
回复
支持
反对
使用道具
举报
显身卡
tigeroar
tigeroar
当前离线
积分
299
IP卡
狗仔卡
楼主
|
发表于 2005-1-13 11:36:48
|
显示全部楼层
当然有必要,否则定义之干吗?如果这个数据放在文件里面运算,速度太慢.
回复
支持
反对
使用道具
举报
显身卡
doubleelec
doubleelec
当前离线
积分
773
IP卡
狗仔卡
发表于 2005-1-13 12:24:49
|
显示全部楼层
没必要事先定义,需要的时候 new 一个就行了
回复
支持
反对
使用道具
举报
显身卡
bobhuang
bobhuang
当前离线
积分
50
IP卡
狗仔卡
发表于 2005-1-13 12:50:32
|
显示全部楼层
所有的静态变量和全局变量都是在程序的数据段中分配的, 函数内部变量都是在栈(stack)中分配的,动态内存是在堆(heap)中分配的。数据段的容量根据编译器的不同各有不同,一般比较小。栈段和堆一般比较大,在有些系统中可以用虚拟内存扩展,理论上足够用。所以大内存块用动态的内存分配比较好。如new/delete或者malloc/free
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2005-1-13 19:40:18
|
显示全部楼层
有些系统上可能数据段与堆栈段的大小是有限制的,用ulimit看看限制的大小是多少。
回复
支持
反对
使用道具
举报
显身卡
tigeroar
tigeroar
当前离线
积分
299
IP卡
狗仔卡
楼主
|
发表于 2005-1-13 22:11:56
|
显示全部楼层
谢谢各位, 我用vector,让他自动管理吧..
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表