4

我正在使用一个结构

typedef struct ObjectHandle
{
    long *objHandle;
}ObjectHandle ;

输出是这个结构的值的函数

AllocateObject(ObjectHandle* objectHandle) 
{
   .... 
   ...
   ...
   objectHandle->objHandle = some long value;
}

但是编译器发出警告:赋值使指针从整数而不进行强制转换

请帮忙

4

3 回答 3

7

似乎您不是将值分配给值(内存),而是分配给指针(地址)

尝试这个: *(objectHandle->objHandle) = some long value;

于 2013-06-10T07:25:40.090 回答
0

由于它是一个长指针,它应该具有长变量的地址。

objectHandle->objHandle = &(some long value);
于 2013-06-10T07:49:02.087 回答
0

您正在将一个长整数分配给一个指针(objHandle 是一个指向长整数的指针)。就像编译器说的那样。

这是有效的 c 但通常是一件相当愚蠢的事情,因为长整数是长整数,而不是指针。

在没有看到“一些长值”实际上指的是什么以及随后如何使用句柄的情况下,很难指出您是否应该转换值、获取它的地址、更改句柄的类型或其他什么别的。

于 2013-06-10T11:10:13.390 回答