`

柔性数组

 
阅读更多
#include <iostream>
#include <malloc.h>
using namespace std;

class A{
public:
    A(){}
public:
    char c;
    char data_arr[];//柔性数组并不占空间,有些编译器也支持arr[0],一般可用于变长结构体中,如在网络编程中需要发送的content长度不确定
};

int main()
{
    cout << "sizeof(A):" << sizeof(A)<<endl;
    int len = 3;
    A *a = (A*)malloc(sizeof(A)+sizeof(char)*len);
    for(int i=0;i<len;i++){
        a->data_arr[i] = i+'0';
    }
    for(int i=0;i<len;i++){
        cout << a->data_arr[i] << endl;
    }
    cout << "sizeof(*a):" << sizeof(*a) << endl;    free(a);
    return 0;
}

sizeof(A):1
0
1
2
sizeof(*a):1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics