数组存储在栈中还是堆中
来源:互联网 发布:财政部会计报表软件 编辑:程序博客网 时间:2024/05/16 07:01
今天看代码,定义了一个结构体
typedef struct {
int a;
int b;
int char[6*1024];
} ss_t;
//定义一个指针
ss_t *sTmp = NULL;
sTmp = malloc(sizeof(ss_t));
我的第一反应是,怎么可以定义这么大数据,容易把栈搞死(理由:数组保存在栈空间)。
哎...忘了是由malloc产生的,根本就是生成在堆上。
但是这样结构体定义变量时就会容易出现栈资源专用严重问题,如下:
ss_t tmp;
这样一个变量就占用了6K多栈资源,就不合理了。定义改为如下
typedef struct {
int a;
int b;
int char* buf
} ss_t;
定义变量 ss_t tmp;再使用malloc申请 buf 就更为合理。 0 0
- 数组存储在栈中还是堆中
- c++变量在堆中还是栈中
- String存放在堆中还是栈中
- String存放在堆中还是栈中
- Go的变量到底在堆还是栈中分配
- 在数组中存储对象
- 在MYSQL中存储数组
- 细说JVM系列:成员变量分配在栈中还是堆中?
- 在堆中创建二维数组
- C++中栈存储和堆存储
- 在ORACLE存储过程中使用数组
- 在ORACLE存储过程中使用数组 .
- 在结构中使用字符数组还是字符指针?
- 在结构中使用字符数组还是字符指针
- C++中栈和堆的区别及区分对象存储在堆或栈中的方法
- C++在堆中创建数组需注意
- 关于String的创建,在池(pool)还是在堆中。
- CUDA编程中线程分配的数组在register中还是local memory中?
- STL源码剖析 [容器](十四)[stl_set.h]
- CocoaPods 安装和使用
- ArcGIS for Android示例解析之空间查询-----QueryTask
- Android中AsyncTask类与AsyncQueryHandler类的用法
- 子网划分两个例子---经典
- 数组存储在栈中还是堆中
- 通过Intent传递一些二进制数据的方法有哪些?
- 黑马程序员——36,Collections工具类,Arrays工具类,高级for循环,可变参数,静态导入
- hdu 2844 Coins (多重背包)
- Java中用System.getProperty("...")获取系统属性
- linux命令技巧
- 16进制的 RBG值 颜色 转换
- 7.Builder Pattern的学习和使用
- 几种JVM垃圾回收机制