2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Где здесь функция?
Сообщение11.01.2013, 16:28 
temp03 в сообщении #670300 писал(а):
похожие на что? на _list.aa, на bbb или на _list?
Имеющие тип такой же, как у _list.aa и присваиваемые _list.aa. Первое следует из второго, да и искать легче тоже второе.

(Оффтоп)

Кстати, а это-то что такое?:
temp03 в сообщении #670182 писал(а):
_list.aa инициализируется как malloc

 
 
 
 Re: Где здесь функция?
Сообщение11.01.2013, 18:08 
arseniiv
Скорее всего, _list.aa = malloc(chislo_s_zapasom * sizeof(intptr_t));

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 00:03 
Всем пасиба. Буду рыть.

-- Сб янв 12, 2013 01:09:19 --

Joker_vD в сообщении #670368 писал(а):
arseniiv
Скорее всего, _list.aa = malloc(chislo_s_zapasom * sizeof(intptr_t));
да

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 14:02 
Хм. А скажите, какой тип имеет выражение malloc(chislo_s_zapasom * sizeof(intptr_t))?

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 16:29 
Аватара пользователя
Joker_vD в сообщении #670680 писал(а):
Хм. А скажите, какой тип имеет выражение malloc(chislo_s_zapasom * sizeof(intptr_t))?


void * malloc ( size_t size );

ps. После выделения памяти и присваивания переменной _list.aa указателя на эту память должна быть секция с присваиванием адресов функций элементам выделенного массива (Ну или не должна - malloc не заполняет выделенный блок нулями - в этом случае вызовы будут передаваться по случайным адресам со всеми вытекающими последствиями типа access violation и прочим - уж как повезет).

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 17:32 
Corund
Во-первых, я спрашивал не вас, во-вторых, вы написали не тип выражения, а объявление функции.

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 19:46 
Аватара пользователя

(Оффтоп)

Извините - я еще в процессе адаптации к правилам и нормам поведения на этом форуме - есть некоторые отличия от других.

 
 
 
 Re: Где здесь функция?
Сообщение12.01.2013, 20:49 
С Новым годом!
Joker_vD, ответ звучит так:
.. на тёмном небе сияет яркая Луна!
И тёплый ветер
Как жизнь прекрасна! всё ж была :x
Жизнь пролетела - среди веселья кабаков!
Всё улетело.
Остался страх кашмарных снов :shock:

Изображение

 
 
 
 Re: Где здесь функция?
Сообщение14.01.2013, 12:51 
Corund в сообщении #670763 писал(а):
ps. После выделения памяти и присваивания переменной _list.aa указателя на эту память должна быть секция с присваиванием адресов функций элементам выделенного массива (Ну или не должна - malloc не заполняет выделенный блок нулями - в этом случае вызовы будут передаваться по случайным адресам со всеми вытекающими последствиями типа access violation и прочим - уж как повезет).


Не совсем, call будет по адресу, который вернул malloc. Следовательно начнется выполнятся некоторый набор инструкций, которые можно прописать ручками. Плюс атрибуты страницы надо настроить. Или поле потом переприсваивается, или еще что...

 
 
 
 Re: Где здесь функция?
Сообщение01.02.2013, 20:19 
Аватара пользователя
Не совсем - вот в этом случае вызов будет по адресу, который вернул malloc:
Используется синтаксис C
bbb = (list_stg_pt *) _list.aa;

А у нас вызов происходит по адресу, который лежит по адресу, который вернул malloc:
Используется синтаксис C
bbb = *(list_stg_pt *) _list.aa;

 
 
 [ Сообщений: 25 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group