尾随数组习语

Pra*_*rav 10 c c++ arrays idioms terminology

什么是尾随数组成语

PS:谷歌搜索这个术语赋予矢量是使用尾随数组习惯用法实现的,因此它们不能在不改变矢量对象本身地址的情况下调整大小.

Fre*_*Foo 10

如果你的意思是GCC源代码中提到的尾随数组习惯用法(你的引用来自哪里),它似乎引用旧的C技巧来实现动态数组:

typedef struct {
    /* header */
    size_t nelems;

    /* actual array */
    int a[1];
} IntVector;
Run Code Online (Sandbox Code Playgroud)

用数据创建数组的位置

IntVector *make_intvector(size_t n)
{
    IntVector *v = malloc(sizeof(IntVector) + sizeof(int) * (n-1));
    if (v != NULL)
        v->nelems = n;
    return v;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果是指那个,那么更常见的术语是[struct hack](http://stackoverflow.com/q/3711233/168225). (3认同)