|
|
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. так тоже работает.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 15:26 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Tubrikразницы же нету const int i5 = 5; или int const i5 = 5; ?? одно и тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 15:32 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Tubrik Код: plaintext 1. так тоже работает.. есстественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 15:33 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Akh Tubrik Код: plaintext 1. так тоже работает.. есстественно. const int &i = 5; и так тоже) всем спасибо, теперь я спокоен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 15:34 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Tubrik wrote: > int &i что можно делат с такой переменной? то, же, что и с int > что она вообще из себя представляет? адрес оригинальной переменной. > можно ли ей присвоить значение? значение присвоить можно, но заставить указывать на новую переменную - нельзя. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:48 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Tubrik wrote: > int &i = *(int *)2; accessViolation будет. Вы берете ссылку на переменную, которая якобы находится по адресу 0x00000002. > бывают ли для нее достойные применения? int a = 3; int& b = a; Плюсы по сравнению с указателем в том, что требует инициализации и не может указывать на 0 (если не изваращаться :)). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:50 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
ErV > int &i = *(int *)2; accessViolation будет. Вы берете ссылку на переменную, которая якобы находится по адресу 0x00000002. gcc 3.3.3 номально пропускает. Одно из 2-х: 1) либо он оптимизирует без реального разыменования. 2) либо приводит к int i. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:53 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
tAZAR wrote: > Кто вам даст потом безнаказанно писать в память, которую вы не выделяли? В MS-DOS программе реального времени, по идее, такое можно. (но вот только не факт, что в адрес 0x00000002). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:54 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Akh wrote: > gcc 3.3.3 номально пропускает. Одно из 2-х: А если туда писать попробовать? :) Компилиться-то такое должно... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:58 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
ErV tAZAR wrote: > Кто вам даст потом безнаказанно писать в память, которую вы не выделяли? В MS-DOS программе реального времени, по идее, такое можно. (но вот только не факт, что в адрес 0x00000002). Posted via ActualForum NNTP Server 1.4 Там, вроде таблица прерываний. В таблицу писать разрешает, насколько я помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 17:58 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
ErV Akh wrote: > gcc 3.3.3 номально пропускает. Одно из 2-х: А если туда писать попробовать? :) Компилиться-то такое должно... Posted via ActualForum NNTP Server 1.4 Скомпилится. Дело в другом. accessViolation не будет при чтении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 18:00 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Akh ErV > int &i = *(int *)2; accessViolation будет. Вы берете ссылку на переменную, которая якобы находится по адресу 0x00000002. gcc 3.3.3 номально пропускает. Одно из 2-х: 1) либо он оптимизирует без реального разыменования. 2) либо приводит к int i. И не удивительно, адрес допустимый и читать его можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 18:07 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
blinded Akh ErV > int &i = *(int *)2; accessViolation будет. Вы берете ссылку на переменную, которая якобы находится по адресу 0x00000002. gcc 3.3.3 номально пропускает. Одно из 2-х: 1) либо он оптимизирует без реального разыменования. 2) либо приводит к int i. И не удивительно, адрес допустимый и читать его можно Вообще, я даже не уверен, что он с него что-то читает. Бедь, если не удается получить смещение при инициализации ссылки, то он будет хранить указатель. Т.е. int &i будет указателем на 0x000002. Потом он и выводиться. Берется адресс ссылки, и мы видим 2-ку. Разыменовывать адрес, чтобы потом получить указатель разыменованных данных бессмысленно. Компилятор это оптимизирует, и акссес виолейшен обходиться стороной. :) Такая вот мысля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 18:17 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Akh wrote: > Бедь, если не удается получить смещение при инициализации ссылки, то он > будет хранить указатель. Т.е. int &i будет указателем на 0x000002. Потом > он и выводиться. Берется адресс ссылки, и мы видим 2-ку. Не должно быть такого. Там 2 кастится в указатель на int. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 19:04 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
ErV Akh wrote: > Бедь, если не удается получить смещение при инициализации ссылки, то он > будет хранить указатель. Т.е. int &i будет указателем на 0x000002. Потом > он и выводиться. Берется адресс ссылки, и мы видим 2-ку. Не должно быть такого. Там 2 кастится в указатель на int. Posted via ActualForum NNTP Server 1.4 Это-то да, вот только выводится &i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 19:22 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
blinded wrote: > Это-то да, вот только выводится &i Гм. А если по адресу лежит 2? :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 19:42 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
ErV blinded wrote: > Это-то да, вот только выводится &i Гм. А если по адресу лежит 2? :) Не все ли равно что там лежит? Обращения к значению не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2007, 09:58 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
еще один вопросик :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. как так получается? b вроде становится псевдонимом переменной a, которая разрушается при выходи и fucn() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2007, 18:27 |
|
||
|
int &i; что можно делат с такой переменной?
|
|||
|---|---|---|---|
|
#18+
Tubrik wrote: > еще один вопросик :) > > int &func() > { > int a = 5; > return a; > }// Нельзя так делать. int a создается на стеке, и при выходе из функции её значение с очень большой вероятностью будет затерто каким-нибудь мусором (так как указатель стека изменяется). При попытке записи в этот результат будут порушены данные, либо будет AccessViolation (или SegmentationFault :)). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2007, 18:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34730553&tid=2028360]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
177ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 454ms |

| 0 / 0 |
