Advertisement

内存分配规则和对齐策略(详)

阅读量:

一、结构体的内存分配

对于结构体变量所占用的空间,通常认为其等于各个成员变量所占空间的总和,然而在实际应用中,我们却遇到了与这一假设不符的情形。

例子1:属于各成员所占空间总和符合预期的情况

复制代码
 struct stu

    
  
    
 {
    
  
    
 int num;  //4
    
  
    
     int age;  //4
    
  
    
 }lucy;
    
  
    
 int main(int argc,char *argv[])
    
  
    
 {  
    
  
    
 printf("%d\n",sizeof(lucy)); //8
    
  
    
 return 0;   
    
  
    
 }
    
    
    
    

然而,在实际为结构体变量分配内存空间时,需要遵循特定的规则。

示例2:并非所有情况下成员所占空间的总和都能准确反映整体大小

复制代码
 struct stu

    
  
    
 {
    
  
    
 char sex; //1
    
  
    
     int age; //4
    
  
    
 }lucy;
    
  
    
 int main(

全部评论 (0)

还没有任何评论哟~