【发布时间】:2020-03-23 16:40:27
【问题描述】:
为了向前迈进:我必须用 C 语言做一个项目,但是我的合作伙伴遇到了一个错误,我们无法弄清楚如何解决它。它告诉我们,当我们定义 1 和 0 时,在 switch_statement 的每种情况下,“{”之前的预期表达式都有错误。有人有想法吗?
int **create_block_sh(int height, int width, int desired_shape)
{
int **block = create_2D_dyn(height, width);
switch (desired_shape)
{
case 1 :
block[height][width] = {{1,0,0},
{1,1,0},
{1,1,1}};
break;
case 2:
block[height][width] = {{1,0,0},
{1,0,0},
{1,1,1}};
break;
case 3:
block[height][width] = {{1,0,0},
{1,0,0},
{1,0,0}};
break;
default:
printf("error !!");
break;
}
}
谢谢大家,但在一些进一步的帮助下,我找到了另一种选择,即:block = (int *[]){(int []){0,1,1}, (int []){1,1 ,1}, (int []){1,1,0}}; 这是截图:[http://prntscr.com/rlco7f]
【问题讨论】:
-
block[height][width]的类型是什么?当你能回答这个问题时,你就知道出了什么问题 -
你也忘了
return block;在create_block_sh函数的末尾,但那是另一回事 -
相关错误是
invalid type argument of unary '*' (have 'int')
标签: c arrays multidimensional-array switch-statement