Как я могу создать матрицу, которая имеет только структуры, а затем создать поток для всех данных, которые хранятся в матрице?

Добавьте еще ColorAnimation в Storyboard и установите для его свойства BeginTime значение, большее или равное Duration первого, например :

<EventTrigger RoutedEvent="ContentChanged">
    <EventTrigger.Actions>
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation BeginTime="0:0:0" Duration="0:0:1" 
                                Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)" 
                                To="Yellow"/>
                <ColorAnimation BeginTime="0:0:1" Duration="0:0:1" 
                                Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Color)" 
                                To="White"/>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger.Actions>
</EventTrigger>
0
задан marc_s 22 January 2019 в 18:26
поделиться

1 ответ

Вы не можете инициализировать массивы из других массивов или указателей. И вы также не можете назначить массивы.

Таким образом,

char destino[4] = arg_struct->porto;

является недействительным.

Есть два способа решения этой проблемы для вас:

  1. Положитесь на тот факт, что массивы естественным образом распадаются на указатели на их первый элемент. То есть, если ожидается указатель, то arg_struct->porto равно &arg_struct->porto[0]. Это означает, что вы можете

    char *destino = arg_struct->porto;
    
  2. вообще не иметь никакой переменной destino и передавать arg_struct->porto непосредственно на ваши strcmp вызовы:

    if (strcmp(arg_struct->porto, "BUS") == 0) ...
    
    [ 1118]

Также обратите внимание, что strcmp возвращает ноль , если две строки равны. Вот причина сравнения равенства с нулем выше.


Невозможность присвоить массиву также является причиной того, что такие операторы, как

parque[i][j].nSerie = "";

, потерпят неудачу.

Если вы хотите, чтобы массивы работали как пустые строки, все, что вам нужно сделать, это установить первый элемент в нулевой терминатор:

parque[i][j].nSerie[0] = '\0';  // Make string "empty"

Если вы хотите очистить все байты массива, вы необходимо использовать функцию memset :

memset(parque[i][j].nSerie, 0, sizeof parque[i][j].nSerie);  // "Clear" array
0
ответ дан Some programmer dude 22 January 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: