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

Поиск:

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


Эксперт
****


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

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



Здравствуйте.
Подскажите пожалуйста
Пытаюсь сделать следующее
Имею такие две переменные
Код

char* dest
WIN32_FIND_DATA FindFileData

Пытаюсь четырём байта расположенным по адресу dest приравнять FindFileData.nFileSizeLow.
Вот так пытаюсь сделать
Код

(unsigned long)dest[0] = FindFileData.nFileSizeLow;

Но безуспешно.
PM MAIL   Вверх
mes
Дата 28.2.2010, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250





Цитата(Ak47black @  28.2.2010,  21:37 Найти цитируемый пост)
Пытаюсь четырём байта расположенным

как это соотносится с unsigned long ?

Цитата(Ak47black @  28.2.2010,  21:37 Найти цитируемый пост)
Вот так пытаюсь сделать

Код

*(unsigned long*)dest = 



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


Эксперт
****


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

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



У меня что-то
Цитата

'Access Violation'

с этим кодом.
А он точно правильный?
PM MAIL   Вверх
mes
Дата 28.2.2010, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Ak47black @  28.2.2010,  22:32 Найти цитируемый пост)

с этим кодом.
А он точно правильный? 

А вы точно выделили память под указатель ?


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


Эксперт
****


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

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



Вот такой пробный пример набросал
Код

//---------------------------------------------------------------------------

#pragma hdrstop


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <tchar.h>
#include <vector.h>

//---------------------------------------------------------------------------

#pragma argsused

void func(char* dest)
{
    WIN32_FIND_DATA FindFileData;
   FindFileData.nFileSizeLow = 2222;
    *(unsigned long*)dest[0] = FindFileData.nFileSizeLow;
}

int main(int argc, char* argv[])
{
    char buffer[20];
    buffer[0] = 1;
   buffer[1] = 2;
    func(buffer+2);

    return 0;
}
//---------------------------------------------------------------------------


Добавлено через 36 секунд
А не подождите.

Добавлено через 1 минуту и 40 секунд
Я уже от переутомления перепутал.
С 
Код

*(unsigned long*)dest = FindFileData.nFileSizeLow;

работает.

Добавлено через 3 минуты и 3 секунды
А можно тогда ещё спросить
Как тут сделать лучше что-бы можно было обратится к следующему элементу (если размер одного элемента 4 быйта)
Тоесть на подобии
Код

*(unsigned long*)dest[4] = FindFileData.nFileSizeLow;


Добавлено через 3 минуты и 56 секунд
Другими словами я хочу в массив записать high и low значения
Тоесть чтото вроде
Код

    *(unsigned long*)dest = FindFileData.nFileSizeLow;
    *(unsigned long*)dest[4] = FindFileData.nFileSizeHigh;

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


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Ak47black @  28.2.2010,  22:51 Найти цитируемый пост)
Тоесть на подобии

Код

*((unsigned long*)buff + n)

где n это индекс элемента размера sizeof(unsigned long)




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


Эксперт
****


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

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



Вроде-бы работает.
Завтра на свежую голову ещё проверю.
Спасибо, Вам за помощь с этими конструкциями  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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