Вот полезная ссылка , чтобы узнать о локальных переменных и области действия.
Ваша конкретная проблема заключается в том, что ваша переменная decoder
является локальной для области действия блока (вы объявили ее в if
), и вы пытаетесь использовать его вне этой области. Однако после выхода из области видимости все переменные, локальные для этой области.
if (number = 987)
{
int decoder[3] = {0, 1, 2};
} // and here decoder is destroyed
Вы можете объявить decoder
вне блока и определить его внутри блока:
int decoder[3];
if (number = 987)
{
// populate decoder
}
// decoder still exists