jenya7 0 30 июля, 2017 Опубликовано 30 июля, 2017 (изменено) · Жалоба Я все время делаю так for ( i = 0; i < MAX_ELEMENTS; i++) { array_struct[i].member = i; } И тут я подумал, а почему не делать так while ( &array_struct[i] != ((void*)0) ) { array_struct[i].member = i; i++; } как минимум не надо заморачиваться с MAX_ELEMENTS. что странно я никогда не видел чтоб так делали. хотя можно и так for ( i = 0; i < sizeof(array_struct)/sizeof(array_struct[0]); i++) лучшее враг хорошего. Изменено 30 июля, 2017 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 30 июля, 2017 Опубликовано 30 июля, 2017 · Жалоба И тут я подумал, а почему не делать так while ( &array_struct[i] != ((void*)0) ) Если стоит задача уничтожить все от начала структуры до конца адресного пространства - вполне рабочее решение. Если такой задачи не стоит - используют sizeof(array_struct)/sizeof(array_struct[0]). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 30 июля, 2017 Опубликовано 30 июля, 2017 · Жалоба И тут я подумал, а почему не делать так while ( &array_struct[i] != ((void*)0) ) { array_struct[i].member = i; i++; } как минимум не надо заморачиваться с MAX_ELEMENTS. что странно я никогда не видел чтоб так делали. Странно было бы, если бы так кто-то делал. Откуда вдруг возьмется нулевой адрес? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 30 июля, 2017 Опубликовано 30 июля, 2017 (изменено) · Жалоба Если стоит задача уничтожить все от начала структуры до конца адресного пространства - вполне рабочее решение. Если такой задачи не стоит - используют sizeof(array_struct)/sizeof(array_struct[0]). а почему уничтожить? а ну да. тьфу. вот туплю. :) у меня новый пунктик - все минимизировать и генерикозировать. :) Изменено 30 июля, 2017 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 31 июля, 2017 Опубликовано 31 июля, 2017 · Жалоба . . . все минимизировать и генерикозировать. :) Ну так.... Если исходить из темы (перебор полей структуры), то решения Вам предлагали в "прошлой теме на этуже тему". Встроенных возможностей для этого в компиляторе нет - я думаю это сделано специально, чтоб не плодить "большой театр" :) А для тех, кому нужно нечто особенное - есть CPP. Пишите собственноручно итератор по вашему объекту - в том виде, который нужен Вам, и так, чтбы им могли пользоваться (без йопрст) другие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 июля, 2017 Опубликовано 31 июля, 2017 · Жалоба Не понимаю. Что нужно - перебрать все элементы одной структуры, как написано в заголовке, или перебрать одни и те же элементы в массиве структур, как предлагается for ( i = 0; i < sizeof(array_struct)/sizeof(array_struct[0]); i++) и подтверждается в переписке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться