2013-09-05 2 views
1

У меня есть следующий фрагмент кода, который считывает значение пикселя в шестнадцатеричном формате.Перенесите новое шестнадцатеричное значение в Uint32 *

Uint32* MyPixel = pixels + ((iH-1) + image->w) + iW; 
printf("\npixelvalue is is : %x",*MyPixel); 

Как я могу передать новое шестнадцатеричное значение в * MyPixel потому что я попытался это не работает.

*MyPixel = "00FF00"; 
+0

Использование '* MyPixel = 0xFF00;' – simonc

ответ

2

"00FF00" является строковым литералом. Вам нужно шестнадцатеричное целое буквального:

*MyPixel = 0x00FF00; 

0x Префикс говорит компилятор, что остальная часть числовых литералов следует интерпретировать как числовую шестигранную константу.

+0

ОК, это работает, но, к сожалению, пиксель не меняет его значения, неважно, позвольте мне заглянуть в него. – user2711681

+1

@ Фактически kevin его основан на SDL-кодах, поэтому mypixl указывает на структуру, состоящую из всех пикселей. – user2711681

+0

Обратите внимание, что вы присваиваете значение переменной «uninitialized», поскольку она не указывает на какое-либо пространство памяти. – KevinDTimm

Смежные вопросы