float verticies[14][3];
init_mod(){
verticies = {{-0.5,-0.5, 0.5},
{ 0.5,-0.5, 0.5},
{-0.5, 0.5, 0.5},
{ 0.5, 0.5, 0.5},
{-0.5, 0.5,-0.5},
{ 0.5, 0.5,-0.5},
{-0.5,-0.5,-0.5},
{ 0.5,-0.5,-0.5},
{ 0.5, 0.5, 0.5},
{ 0.5,-0.5, 0.5},
{-0.5,-0.5,-0.5},
{-0.5,-0.5, 0.5},
{-0.5, 0.5,-0.5},
{-0.5, 0.5, 0.5}};
}
当我编译程序时出现这个错误:
topsecret.c: In function ‘init_mod’:
topsecret.c:12:14: error: expected expression before ‘{’ token
最佳答案
您使用的语法只允许用于初始化;作业不允许这样做。
将它移动到全局数组的声明中将解决问题:
float verticies[14][3] =
{{-0.5,-0.5, 0.5},
{ 0.5,-0.5, 0.5},
{-0.5, 0.5, 0.5},
{ 0.5, 0.5, 0.5},
{-0.5, 0.5,-0.5},
{ 0.5, 0.5,-0.5},
{-0.5,-0.5,-0.5},
{ 0.5,-0.5,-0.5},
{ 0.5, 0.5, 0.5},
{ 0.5,-0.5, 0.5},
{-0.5,-0.5,-0.5},
{-0.5,-0.5, 0.5},
{-0.5, 0.5,-0.5},
{-0.5, 0.5, 0.5}};
如果以后需要重新分配数组,可以在函数内部初始化一个临时"template"数组,然后使用memcpy
将其内容放入全局数组。
关于c - 从函数初始化 C 中的全局二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101182/