• C语言柔性数组


    #include <stdio.h>
    #include <string.h>  
    #define N 4
    #define STR "abcd"
     
    int main()
    {
        struct student
        {   
        
        }stu;
     
        printf("N = %d
    ", sizeof(N));  
        printf("num 5 memery = %d
    ", sizeof(5));
        printf("char 'd' = %d
    ", sizeof('d')); 
        printf("STR = %d
    ", sizeof(STR));  
        printf("a = %d
    ",sizeof(stu));  // 在编译器gcc、mingw5下输出0,在vc++6.0中输出1(我使用的mingw5编译器),在vc++6.0中默认结构体最小大小为1字>节(包含空结构体和只含一个char类型的结构体) 
    /*
        柔性数组测试 
        可以参考《C语言深度解剖》 
    */
        printf("
    柔性数组测试
    ");
        typedef struct test
        {   
            int i;
            int a[];  // 此数组前必须包含一个其它成员 
        }te;
        printf("sizeof(te) = %d
    ", sizeof(te));  // int a[] 不是结构体中的成员 
        te *p = (te*)malloc(sizeof(te) + sizeof(int) * 100);  
        p->a[0] = 13; 
        printf("p->a[0] = %d
    ",p->a[0]);
        printf("sizeof(p) = %d
    ", sizeof(p));  // 大小仍然为4,因为int a[] 不是结构体中的成员  
        return 0;
    }
    N = 4
    num 5 memery = 4
    char 'd' = 4
    STR = 5
    a = 0
    
    柔性数组测试
    sizeof(te) = 4
    p->a[0] = 13
    sizeof(p) = 8
  • 相关阅读:
    jQuery-选择器及属性修改
    jQuery 基础理论
    CSS 之 BFC(块级格式化上下文)
    H5--Web Storage
    H5 -WebWorker
    H5 --拖放
    nodejs Multer中间件
    k8s pod
    kubernetes
    优化CUDA数据传输
  • 原文地址:https://www.cnblogs.com/timssd/p/4658718.html
Copyright © 2020-2023  润新知