在 C99 中,您可以在一行中分配每个结构。我不认为你可以在一行中分配结构数组。
C99 引入了复合文字。请参阅此处的 Dobbs 博士文章:新 C:复合文字 http://www.ddj.com/cpp/184401404
theTest[0] = (test_t){7,8,9};
theTest[1] = (test_t){10,11,12};
您可以像这样分配一个指针:
test_t* p;
p = (test_t [2]){ {7,8,9}, {10,11,12} };
您也可以使用 memcpy:
memcpy(theTest, (test_t [2]){ {7,8,9}, {10,11,12} }, sizeof(test_t [2]);
以上测试与海湾合作委员会-std=c99(版本 4.2.4)在 Linux 上。
您应该阅读 Dobbs 博士的文章以了解复合文字的工作原理。