pointers
for ( ; x<=100 ; x++)
{
pntx=&x;
cout<<x<<"-"<<*pntx<<endl;
}
данный пример выдаёт 1-1 2-2 3-3 и так далее
pntx=&x; //как привязать pntx к следующей ячейке а не к иксу(что-бы прочитать что в ней записано)
спасибо
Указатель это тоже переменная => к нему применимы арифметические операции.Т.е тебе надо сделать pntr++
Цитата:
On 2002-03-03 0935, Soulless wrote
Указатель это тоже переменная => к нему применимы арифметические операции.Т.е тебе надо сделать pntr++
Но у него тут и масива то нет! Если он сделает ptr++, то он будет указывать на левые
данные, а может просто грохнуться...
Цитата:
On 2002-03-04 0258, Ramzes wrote
[quote]
On 2002-03-03 0935, Soulless wrote
Указатель это тоже переменная => к нему применимы арифметические операции.Т.е тебе надо сделать pntr++
Но у него тут и масива то нет! Если он сделает ptr++, то он будет указывать на левые
данные, а может просто грохнуться...
[/quote]
не может а уже.. ладно наверно это сложновато... продолжаю обучение.. work in progress
может это неправильно?
Цитата:
On 2002-03-15 0226, Azazell wrote
если работать со строками, то у меня получалось, что указатель давно уже указывает на области памяти, явно выходящие за размеры массива, все работало, только писать по адресу нельзя было.
может это неправильно?
Указатель может указывать куда угодно, а вот писать/читать/исполнять туда(оттуда) может и нельзя.
Для произвольного указателя можно это проверить используя ф-ции Windows IsGood...Ptr. Например IsGoodWritePtr().
P.S. Возможно, я имя ф-ции переврал. Сейчас посмотреть негде. Я не из дома.
char* ptr;
ptr = 0xA5C7;// для примера
ptr++; //следующий байт памяти
писать нельзя, вынды сразу отрубят ошибкой.
но должен вас огорчить, вы бегаете по памяти виртуального блока в 4гига который выдемен вашей программе системой, поэтому ни какие системные области вы не задените.
Good luck VitSoft
http//www.development.efficientit.com