美文网首页
CGPoint 在内存中的分配是如何的?

CGPoint 在内存中的分配是如何的?

作者: FRAJ | 来源:发表于2019-05-21 14:47 被阅读0次

CGPoint 在OC中是一个结构体,结构体一般采用内存对齐的方式分配,比如:结构体内有 charfloatintlongdouble几种数据类型。

  • char 1个字节
  • float 2个字节
  • int 4个字节
  • long 4个字节
  • double 8个字节

在分配内存的时候按照变量顺序,变量存放的起始地址相对于结构体的起始地址的偏移量必须为该变量的类型所占用的字节的倍数,不够时填充。
即结构体的size必然是最大变量类型字节倍数。
方式有两种:

  • 自然对界:默认的对其方式,按结构体的成员中size最大的成员对齐。
  • 指定对界:使使用伪指令#pragma pack(n)指定如果结构体内的成员size不足对齐按照n的长度对齐,但是注意如果定义的n大于结构体成员最大的size时则不起作用,结构体还是按照size最大成员对齐。

相关文章

  • iOS - 结构体内存分配

    问题来源面试题:CGPoint在内存中如何分配? CGPoint在OC中是一个结构体,结构体一般采用内存对齐的方式...

  • CGPoint 在内存中的分配是如何的?

    CGPoint 在OC中是一个结构体,结构体一般采用内存对齐的方式分配,比如:结构体内有 char、float、i...

  • A1_内存泄漏(循环引用)

    一、什么是内存泄漏,在 Obj-C 中如何检测内存泄漏? “内存泄漏(Memory Leak)是指程序中己动态分配...

  • (二)C语言之动态内存分配

    (二)C语言之动态内存分配 一、静态内存分配 定义是指定分配的内存长度就是静态内存分配,是在栈内存中分配 二、C语...

  • 内存管理

    1,内存分配 首先既然我们需要对内存进行管理,就需要知道内存是怎么分配的,是分配在哪里的? 在iOS中数据是存在堆...

  • 【问答】补充

    Java JVM如何管理内存的? Java中内存管理是JVM自动进行的,创建对象或者变量时JVM会自动分配内存,当...

  • slub分配机制

    slub分配机制 如何分配内存块? 如何释放内存块? 一个内存块就是一个object。 ​单个物理页之内分配小内存...

  • 2018-05-17

    OS学习周报告-2 内存分配算法模拟-bf 计算机中的程序需要装入内存才能执行,如何为程序分配内存是人们一直以来思...

  • 二.内存分配

    1.内存分配的简单说明 在基本的嵌入式rtos系统中,推荐使用的内存分配算法是tlsf。在gcc中,使用的是ptm...

  • Java是如何管理内存

    为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放...

网友评论

      本文标题:CGPoint 在内存中的分配是如何的?

      本文链接:https://www.haomeiwen.com/subject/uuhjzqtx.html