Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何修复编译器错误';:警告:赋值从指针生成整数,不带强制转换';_C - Fatal编程技术网

C 如何修复编译器错误';:警告:赋值从指针生成整数,不带强制转换';

C 如何修复编译器错误';:警告:赋值从指针生成整数,不带强制转换';,c,C,下面的代码给了我一个警告: 警告:赋值从指针生成整数而不进行强制转换: 我想用b[0]…b[1]保存uint16\u t*g\u 00; 如何修复此编译器警告 我打算使用b[0]…b[1]保存uint16\u t*g\u 00的地址 要在b的条目中存储地址,需要将其声明为指针数组: uint16_t ** b[4]; uint16_t * g_00; ... b[0] = &g_00; /* Stores g_00's address. */ 更新: OP的声明: b[0] =

下面的代码给了我一个警告:

警告:赋值从指针生成整数而不进行强制转换:

我想用
b[0]…b[1]
保存
uint16\u t*g\u 00;

如何修复此编译器警告

我打算使用b[0]…b[1]保存uint16\u t*g\u 00的地址

要在
b
的条目中存储地址,需要将其声明为指针数组:

uint16_t ** b[4];

uint16_t * g_00;
...

b[0] = &g_00; /* Stores g_00's address. */

更新:

OP的声明:

b[0] = g_00;
不存储
g_00
的地址,而是存储
g_00
本身携带的值

如果这是目的(与存储
g_00
地址相比),则
b
的正确声明为:

uint16_t * b[4];

uint16_t * g_00;
...

b[0] = g_00; /* Stores g_00's value. */

如果你想
b
保存一个地址,它需要一个地址的大小。不确定你为什么不将
uint16\u t*
也用于b:
uint16\u t*b[4]
。如果他想“保存
uint16\u t*g\u 00的地址
”,它应该是
uint16\u*b[4]
;如果他想保存
uint16\u t*g\u 00的值
,它应该是
uint16\u t*b[4]
。如果希望
b
保存指针,它需要是一个与指针类型相同的对象数组,而不仅仅是与指针大小相同的对象数组;除了
void*
s,C指针不是通用地址,它们是指向特定类型的指针“是指向a
uint16\u t
的指针,可能您的意思是
uint16\u t**b[4]
。Mathuin的编辑完全错误。然而,我现在和这里都无法撤销它@盖伊·哈里斯:不是我!嗯,我不知道为什么你不能编辑你自己的答案,但看起来我可以,所以我只是编辑了它以使其正确。(对于任何想删除其中一个
*
的人,在屈服于诱惑之前,对自己说“在C中,数组不是指针”。@guyharris:Thx!我想回滚,而不仅仅是编辑编辑。。。在我的微型手机的微型显示屏上消失了(s-)
uint16_t * b[4];

uint16_t * g_00;
...

b[0] = g_00; /* Stores g_00's value. */