Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.154.41] |
|
Сообщ.
#1
,
|
|
|
void PortTabReset(P_TABLE* portTable) { for (UINT16 index = 0; index < portTable->maxNumber; index++) { --//-- --//-- G_PORT *port = &portTable->ports[index]; if (port->isCreated) { --//-- --//-- port->channel = NULL; port->isSender = FALSE; port->isCreated = FALSE; } } } Есть такая функция, и меня очень сильно смущает декларация указателя внутри цикла. Но меня все убеждают что это нормально. Меня смущает то, что при выходе из цикла значение полей portTable->ports[index] может измениться со "сброшенного" как внутри цикла на неизвестное при выходе. Это изменение может на мой взгляд произойти из за того, что декларация переменной указателя объявлена внутри цикла. Если можно, либо подтвердите либо опровергните мои опасения. Спасибо. |
Сообщ.
#2
,
|
|
|
Так снаружи цикла переменной и не будет видно, в чем проблема? portTable->ports[index] не изменится после того, как G_PORT* port выйдет из области видимости.
|