【问题标题】:Reassign new hex value into Uint32 *将新的十六进制值重新分配到 Uint32 *
【发布时间】:2013-09-09 14:20:51
【问题描述】:

我有以下代码 sn-p 以十六进制格式读取像素值。

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

我如何将新的十六进制值重新分配到 *MyPixel 因为我试过这不起作用。

*MyPixel = "00FF00"; 

【问题讨论】:

  • 使用*MyPixel = 0xFF00;

标签: c pointers hex


【解决方案1】:

"00FF00" 是一个字符串文字。你需要一个十六进制整数文字:

*MyPixel = 0x00FF00;

前缀0x 告诉编译器需要将数字文字的其余部分解释为数字十六进制常量。

【讨论】:

  • 好吧,它可以工作,但不幸的是像素没有改变它的值,没关系,让我看看它。
  • @Actually kevin 它基于 SDL 代码,因此 mypixl 指向由所有像素组成的结构
  • 请注意,您正在为“未初始化”变量赋值,因为它不指向任何内存空间。
  • @KevinDTimm 为什么没有初始化?如果pixels 指向大小大于( (iH-1) + image->w ) + iW 的像素数组,则pixels + ( (iH-1) + image->w ) + iW 指向内存中的有效位置。
  • 糟糕,明白了。我读错了,因为他只想在没有分配的情况下进行值分配*MyPixel = 0xff00;.....
猜你喜欢
  • 2018-05-16
  • 2014-11-03
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
相关资源
最近更新 更多