表达式必须为可修改的左值- c++错误



当我执行以下代码时,我得到了错误。

int *p;
p = (int *)malloc(128*sizeof(int *));
for (int i = 0; i < 128; i++)
{
    (*p + i) = 0;
}

Expression must be modifiable lvalue

问题是(*p + i) = 0被解析为((*p) + i) = 0(即取消对p的引用,将i添加到其中,然后尝试分配结果)。

修改

,重写

(*p + i) = 0;

*(p + i) = 0;

p[i] = 0;

(我认为后者更易读)

更好的是,看到这是c++而不是C,使用std::vector<int>并删除显式管理内存的需要。

左值不正确。试一试* (p + i) = 0;

我想应该可以。

相关内容

  • 没有找到相关文章

最新更新