C中的赋值错误中的左值无效

时间:2011-02-27 10:01:17

标签: c pointers

当我尝试使用此行运行代码时,标题中描述了错误:

(int**)newPtr = *(list + index);

有谁知道什么是错的?

这些是我的声明

int index; 
int* newPtr;
static int* list;

2 个答案:

答案 0 :(得分:2)

代码中有一些错误:

  • newPtr被声明为指向整数的指针,但是你将它转换为指针指向整数,这是错误的。

  • list + index也是指向整数的指针*(list + index)是指向(list + index)的整数。但是你试图将它分配给newPtr(它也被转换为错误的类型,如上所述)。

可能你打算这样做:

newPtr = list+index;

并获取位于list + index-th位置的指向整数的指针。

答案 1 :(得分:0)

*(list + index)返回一个int。如果你想要一个指针,只需使用

newPtr = list + index;

int **表示指向int指针的指针,该指针似乎没有任何业务。