Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой вопрос по выделению памяти 
V
    Опции темы
Ak47black
  Дата 13.6.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: -1
Всего: 0



Здравствуйте.
Вообщем у меня просто вопрос надеюсь вы быстро на него ответите.
У меня невыходит выделить, скопировать и освободить память.
Вот что пытаюсь сделать
Код

        PVOID bits;
    bits = malloc(pso->cjBits); // ULONG  pso->cjBits
    memcpy(bits,pso->pvBits,pso->cjBits); // PVOID pso->pvBits
    free(bits);

Не правильный конечно у меня вышел код покопался в MSDN и нашел  вот такой код
Код

void free( 
   void *memblock 
);

А где а параметрах размер?
Вообщем вот так-бы выглядело на Delphi
Код

var
  bits: PVOID;
begin
  Getmem(bits, pso.cjBits);
  Copymem(bits,pso.pvBits,pso.cjBits);
  Freemem(bits, pso.cjBits));
 
И еше можете ктонибудь своими словами сказать что представляет PVOID тип, это если на Delphi Poiter ?  smile 
PM MAIL   Вверх
Damarus
Дата 13.6.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Цитата(Ak47black @  13.6.2007,  13:50 Найти цитируемый пост)
И еше можете ктонибудь своими словами сказать что представляет PVOID тип

Код
void*


Цитата(Ak47black @  13.6.2007,  13:50 Найти цитируемый пост)
А где а параметрах размер?

А зачем размер? Освободиться столько, сколько ты выделил.
PM MAIL ICQ Jabber   Вверх
DigitSphinx
Дата 13.6.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



The free function deallocates a memory block (memblock) that was previously allocated by a call to calloc, malloc, or realloc. The number of freed bytes is equivalent to the number of bytes requested when the block was allocated (or reallocated, in the case of realloc)

Это сообщение отредактировал(а) DigitSphinx - 13.6.2007, 14:12


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Ak47black
Дата 13.6.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: -1
Всего: 0



Ну для меня просто странно так как в Delphi то надо писать скока например
Код

  Freemem(bits, pso.cjBits);

Значит число это гдето храниться тогда в памяти скока освободил.
Я пишу драйвер ,а вообще в драйверах можно пользоваться этим?
Код у меня такой вот 
Код

    PVOID bits;
    bits = malloc(pso->cjBits);
    memcpy(bits,pso->pvBits,pso->cjBits);
    free(bits);

и ошибки
Цитата

enable.obj : error LNK2019: unresolved external symbol _free referenced in funct
ion _DrvEscape@24
enable.obj : error LNK2019: unresolved external symbol _malloc referenced in fun
ction _DrvEscape@24
objchk_wnet_x86\i386\mirror.dll : error LNK1120: 2 unresolved externals

PM MAIL   Вверх
archimed7592
Дата 13.6.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Ak47black @  13.6.2007,  13:50 Найти цитируемый пост)
Вообщем вот так-бы выглядело на Delphi

ЕМНИП, ещё с Delphi 1.0(если не с Turbo Pascal 7.1) второй параметр, указывающий размер можно было опускать как не нужный(и если указать его неправильно, то ничего не изменится).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Ak47black
Дата 13.6.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: -1
Всего: 0



archimed7592, ок я раньше думал что обязательно нуна указывать  smile .
Ну может кто видит в чём тут проблема с кодом?

Это сообщение отредактировал(а) Ak47black - 13.6.2007, 15:05
PM MAIL   Вверх
JackYF
Дата 13.6.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Среда разработки какая?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Ak47black
Дата 13.6.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: -1
Всего: 0



DDK и компилю через Build
PM MAIL   Вверх
MAKCim
Дата 13.6.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Ak47black
дык ежели драйвер пишешь, конечно будут ошибки
Цитата(Ak47black @  13.6.2007,  14:56 Найти цитируемый пост)
enable.obj : error LNK2019: unresolved external symbol _free referenced in funct
ion _DrvEscape@24
enable.obj : error LNK2019: unresolved external symbol _malloc referenced in fun
ction _DrvEscape@24
objchk_wnet_x86\i386\mirror.dll : error LNK1120: 2 unresolved externals

ядро не экспортирует функции malloc(), free() (если оно их вообще поддерживает (точно сказать не могу потому как не в курсе API ядра Window$))
пользуйся экспортируемыми ядром функциями Mm* (более точно - в google)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ak47black
Дата 15.6.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: -1
Всего: 0



А memcpy можно использовать или это тоже к WinApi идёт?

PM MAIL   Вверх
Rickert
Дата 15.6.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Цитата(Ak47black @  15.6.2007,  00:38 Найти цитируемый пост)
А memcpy можно использовать или это тоже к WinApi идёт?

memcpy/free/malloc - это не winapi


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
MAKCim
Дата 15.6.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Ak47black
смотри
тут



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0798 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.