Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
К примеру, есть массив int numbers[4], он состоит из элементов: numbers[0]; numbers[1]; numbers[2]; numbers[3]; Можно ли переназначить индекс элементов, чтобы массив int numbers[4] состоял из элементов: numbers[2000]; numbers[2001]; numbers[2002]; numbers[2003]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:28 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Можно ли Можно: объяви массив классом, переопредели операцию [] и там можешь спокойно вычитать из индекса свои 2000. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:39 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Да проще наверное сделать минус 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:41 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Это уже map какой-то получается, вот только последовательного расположения данных в памяти не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 20:09 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
В паскале это работает из коробки. Я могу щас ошибаться в синтаксисе но где-то так Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 22:02 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
maytonВ паскале это работает из коробки. Я могу щас ошибаться в синтаксисе но где-то так Код: pascal 1. 2. даже в Бейсике не к ночи будь помянут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 22:07 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465К примеру, есть массив int numbers[4], он состоит из элементов: numbers[0]; numbers[1]; numbers[2]; numbers[3]; Можно ли переназначить индекс элементов, чтобы массив int numbers[4] состоял из элементов: numbers[2000]; numbers[2001]; numbers[2002]; numbers[2003]. можно. только нахрена? чета времена у нас пошли суровые, один 25 тыщ потоков для опроса DNS создает, другой элементы массива с 2000 хочет нумеровать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 23:26 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Автору поможет Стебелек, который как известно работает опережая релятивистские скорости распространения электрического-поля в металлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 10:56 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вывод: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 11:44 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Usman, ага главное не забыть потом сделать undefine ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 12:22 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 12:36 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465К примеру, есть массив int numbers[4], он состоит из элементов: numbers[0]; numbers[1]; numbers[2]; numbers[3]; Можно ли переназначить индекс элементов, чтобы массив int numbers[4] состоял из элементов: numbers[2000]; numbers[2001]; numbers[2002]; numbers[2003]. Можно попробовать выстрелить себе в ногу Код: plaintext 1. 2. 3. 4. 5. но нужно ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 11:05 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
BagaBaga, nice shot! Мне нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 11:07 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
mayton, так это старый трюк, я думал, уж это-то все знают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 19:16 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
MasterZiv, абсолютно согласен - старый добрый С-style трюк. То ли народ подзабывать стал, то ли молодёжь подрастает ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2016, 23:23 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
BagaBagaukugyul552465К примеру, есть массив int numbers[4], он состоит из элементов: numbers[0]; numbers[1]; numbers[2]; numbers[3]; Можно ли переназначить индекс элементов, чтобы массив int numbers[4] состоял из элементов: numbers[2000]; numbers[2001]; numbers[2002]; numbers[2003]. Можно попробовать выстрелить себе в ногу Код: plaintext 1. 2. 3. 4. 5. но нужно ли? И зачем так пробовать? Разве в данном случае мы не имеем ub? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 15:40 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
SashaMercury, индексация — просто сахар для сложения с последующим разыменованием, какое тут UB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 15:57 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
RWolfиндексация — просто сахар для сложения с последующим разыменованием, какое тут UB? прямейшее. Код: plaintext 1. может просто не исполниться на ряде архитектур Например на 80286 в защищённом режиме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:25 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Изопропил, это то же, что Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:26 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
А всегда-ли выпрыгивание за границы аррея это ошибка? ЕМНИП в каких-то языках (толи PHP толи Пайтон) можно было "кружить кругами" по массиву если индекс был за границей. По сути MOD (n). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:30 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
maytonА всегда-ли выпрыгивание за границы аррея это ошибка? достаточно того, что это может быть ошибкой. например в том же защищённом 286 эта операция может привести к записи в сегментый регистр невалидного дескриптора со всеми последствиями. и чем дальше архитектура от PDP/11 - тем веселее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:39 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
Изопропил, разве арифметика с указателем затрагивает сегментные регистры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:44 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
RWolfИзопропил, разве арифметика с указателем затрагивает сегментные регистры? легко затронет, если массив имеет длину более 64КБайт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 16:47 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
RWolfSashaMercury, индексация — просто сахар для сложения с последующим разыменованием, какое тут UB? В данном случае необходимо сделать отсылку к последней версии стандарта (у меня есть черновик, ссылку на который всем предоставил Анатолий, совсем недавно), в частности к разделу 5.7 Additive operators С++ 17 N4594 5.7.4When an expression that has integral type is added to or subtracted from a pointer, the result has the type of the pointer operand. If the pointer operand points to an element of an array object84, and the array is large enough, the result points to an element offset from the original element such that the difference of the subscripts of the resulting and original array elements equals the integral expression. In other words, if the expression P points to the i-th element of an array object, the expressions (P)+N (equivalently, N+(P)) and (P)-N (where N has the value n) point to, respectively, the i + n-th and i − n-th elements of the array object, provided they exist. Moreover, if the expression P points to the last element of an array object, the expression (P)+1 points one past the last element of the array object, and if the expression Q points one past the last element of an array object, the expression (Q)-1 points to the last element of the array object. If both the pointer operand and the result point to elements of the same array object, or one past the last element of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 17:13 |
|
||
|
Ручное назначение номеров индексов массива
|
|||
|---|---|---|---|
|
#18+
SashaMercury, то есть, адресная арифметика определена только в пределах выделенной памяти; ну, видимо, на это были какие-то причины. Изопропил, хм, как-то не попадались мне такие модели памяти, в которых инкремент указателя может повалить программу. Глянуть бы листинг для иллюстрации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=34&tid=2018463]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
101ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 220ms |

| 0 / 0 |
