Re[4]: Структуры на С#2
От: Мишень-сан  
Дата: 13.09.10 11:45
Оценка: 4 (1) +1
Здравствуйте, CaptainFlint, Вы писали:

CF>Здравствуйте, jhdffhg85hdgg5r, Вы писали:


J>>>Так что ты прибавляешь integer не к структуре, а к адресу, т.е. просто получаешь адрес, увеличенный на k размеров структуры.


J>>вот этого я и не понял

J>>структуры в памяти не последовательны т.к. это не массив структур. и перед этим выделялись пo malloc(). кроме того я увеличиваю на число, а не на sizeof(tree_node*)

CF>А что и когда выделялось — это уже другой вопрос. Если не было выделено место, просто получится указатель на невыделенную область памяти. Тут уж программист должен следить за этим (собственно, отсюда и всевозможные проблемы переполнения буфера).

CF>Инкремент указателя на число увеличивает его именно на указанное количество размеров структур, а не байтов. Если требуется сдвинуть именно на несколько байтов, нужно сначала привести указатель к типу void*.

Выделенное, к сожалению, неверно. Арифметика указателей с типом void* запрещена. Надо приводить к char*, который по стандарту размером в 1 байт.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.