Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nefton
44 / 20 / 5
Регистрация: 28.02.2013
Сообщений: 190
#1

Надо указателю на long int присвоить значение указателя на char - C++

20.03.2013, 13:04. Просмотров 869. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
//есть указатель 
unsigned char* p_to_char = somthing;
 
//и указатель 
unsigned long int* p_to_int;
 
//надо p_to_int присвоить значение p_to_char;
 
p_to_int = p_to_char
Компилятор пишет ошибку и что неможет никак. Справедливо, но надо.
Физически то это без проблем.

У меня есть массив в памяти (картинка RGB+A). И есть указатель на её начало типа char*
Тоесть пиксель представляет собой 4 байта последовательно в памяти.
Мне надо проверить является ли пиксель таким то. Притом надо это быстро.

Толи мне проверять каждый байт отдельно и применять сложную логическую конструкцию И к 4м байтам.
Толи у меня будет число 4 байта и я применю к нему просто XOR
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 13:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Надо указателю на long int присвоить значение указателя на char (C++):

Как присвоить указателю значение другого указателя внутри процедуры? - C++
Подскажите пожалуйста. Вот я хочу одному указателю присвоить значение другого указателя внутри процедуры. Как это сделать ? Вот мой код. ...

Присвоить переменной Char значение третьего байта переменно типа Int - C++
всем привет, на одном собеседовании передо мной поставили следующую задачу, присвоить переменной char ch, значение третьего байта переменно...

Присвоить Указателю адрес из массива Char - C++
Например есть такой код: #include <iostream> using namespace std; int main() { int a = 123456789; int *sa =...

Присвоение указателю на char значения int - C++
доброе время суток уважаемые пользователи как можно присвоить int значение char *'у .int имеет размер 4 байта, и указатель на char...

Как присвоить значение одного из элементов массива типа char переменной типа int? - C++
С++ начал буквально только что так что буду благодарен за терпение и понимание ) Сразу оговорюсь что уже искал ответ но на эту тему...

Char, short, int, long: какой тип выбрать? - C++
Всем привет Читая книги по C++ столкнулся с тем, что везде пишут примерно одно и тоже. Допустим про char, short, int, long пишут что...

5
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
20.03.2013, 13:06 #2
C++
1
reinterpret_cast<unsigned long int*>(p_to_char)
Учи матчасть.
P.S. Если работаешь непосредственно с байтами, лучше использовать типы, определенные в cstdint и гарантирующие заданный размер, в твоем случае uint8_t и uint32_t.
Никто не гарантирует, что unsigned long int будет 4 байта, а не 8.
1
nefton
44 / 20 / 5
Регистрация: 28.02.2013
Сообщений: 190
20.03.2013, 13:13  [ТС] #3
О господи, в С и такое есть Спасибо.
0
Kastaneda
Jesus loves me
Эксперт С++
4756 / 2960 / 243
Регистрация: 12.12.2009
Сообщений: 7,517
Записей в блоге: 2
Завершенные тесты: 1
20.03.2013, 13:23 #4
Цитата Сообщение от nefton Посмотреть сообщение
О господи, в С и такое есть
Возможно удивлю, но в С такого нет
0
qaz0
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 11
20.03.2013, 13:28 #5
Еще вариант для рассмотрения :
C++
1
2
3
4
5
union VSunion
{
    unsigned long int VSint;
    unsigned char VSchar[sizeof(unsigned long int)];
};
Вдруг подойдет


Кстати, на замечание о размерности int и использовании uint32_t на самом деле следует обратить внимание.
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
20.03.2013, 13:35 #6
В C обычный каст (uint32_t*)p_to_char, но мы то в разделе C++.
0
20.03.2013, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 13:35
Привет! Вот еще темы с ответами:

Преобразование указателя из char в int и double - C++
указатель sadr является типом char мне нужно перопределить его на типы на int и double int a; double b; void cr(char **sadr) { ...

Размер для данных (int, char, long, double, short, unsigned, float) - C++
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

Присвоить указателю значение, пример из интернета - C++
Добрый вечер. В интернете находил парочку таких примеров: 1.) int *x; cout&lt;&lt;*x; *x=100; 2.)

Не получается присвоить значение указателю на функцию - C++
В строке 26 говорит, что не может конвертировать тип. Что неправильно? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru