ошибка: ожидаемое выражение перед символом «{» при определении двумерного массива в операторе switch в C - PullRequest
0 голосов
/ 23 марта 2020

К go с наступлением ночи: мне нужно сделать проект в C, но я получаю сообщение об ошибке с моим партнером, и мы не можем понять, как это исправить. Он говорит нам, что есть ошибка с ожидаемым выражением перед '{' в каждом случае switch_statement, когда мы определяем 1 и 0. У кого-нибудь есть идея?

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;
    }

}

Вот снимок экрана: Снимок экрана CodeBlock

Спасибо всем, но с некоторыми более помогает, я нашел альтернативу, которая : block = (int * []) ​​{(int []) {0,1,1}, (int []) {1,1,1}, (int []) {1,1,0}}; Вот скриншот: [http://prntscr.com/rlco7f]

1 Ответ

2 голосов
/ 23 марта 2020

Следующий код неверен:

block[height][width] = {{1,0,0},
                        {1,1,0},
                        {1,1,1}};

block - это двумерный массив целых чисел, каждый элемент является целым числом. Поэтому неправильно назначать так.

Все, что вы можете сделать, это:

block[height][width] = 1;

Кроме того, это неправильно: block [height] = {1,2,3}

Вы можете делать то, что имеете, только при объявлении массива, например:

int arr[3][3] = {{1,0,0},
                 {1,1,0},
                 {1,1,1}};

Также, пожалуйста, поместите выражения для каждого оператора case в фигурные скобки как таковые:

switch(...){
    case 1:
    {
      // code
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...