程序的内存分配

Posted huangzs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序的内存分配相关的知识,希望对你有一定的参考价值。

1.全局变量分配在全局/静态区

2.静态变量(全局或者局部)分配在全局/静态区

3.自动变量分配在栈区

4.创建的oc对象分配在堆区

5.文字常量分配在常量区

int a = 1;//全局变量分配在全局/静态区

static int b = 2;//静态全局变量分配在全局/静态区

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    static int c = 3;//静态局部变量分配在全局/静态区

    int d = 4;//自动变量分配在栈区

    NSString *string = @"abcd";//string自动变量分配在栈区,后面的字符串常量分配在常量区

    NSArray *array = [[NSArray alloc] init];//array自动变量分配在栈区,后面创建的oc对象分配在堆区,栈区的指针指向堆区的对象。

}

以上是关于程序的内存分配的主要内容,如果未能解决你的问题,请参考以下文章

Linux程序:--OpenSSL库之相关数据结构和内存分配

C++程序,内存占用一直增加,最后无法分配内存而中断

图解Golang的内存分配

内存分配

内存分配

内存的分配方式