【发布时间】:2016-06-01 13:27:09
【问题描述】:
我对@987654322@ 很陌生,目前正在尝试学习指针。以下是我的程序的代码,我收到了错误:
错误:一元'*'的无效类型参数(有'bool')
我正在尝试为数组指针的i index 设置一个新值。我在这里做错了什么?
int opendoors(int n, int r)
{
bool * open = new bool[n];
for (int i = 0; i <= n; i++)
{
*open[i] = 1;
}
int incdoor = 1;
for (int i = 0; i < r; i++)
{
for (int j = n - 1; j >= 0; j--)
{
*open[i - incdoor] = 0;
}
for (int k = 0; k < n; k++)
{
*open[i + incdoor] = 1;
}
incdoor++;
}
int count = 0;
for (int i = 0; i <= n; i++)
{
if (*open[i] == 1)
{
count++;
}
}
delete [] open;
return count;
}
int main()
{
int n, r;
std::cin >> n >> r;
std::cout << opendoors(n, r) << std::endl;
return 0;
}
【问题讨论】:
-
将
*open[i] = 1;更改为open[i] = true; -
这不是完整的错误信息。它至少包括一个行号,这是重要的信息。一般来说,如果你迷路了,总结是个坏主意。
-
PS:在 C++ 中使用
true和false而不是 1 和 0 -
@EdHeal 感谢您的帮助和提示!
-
建议阅读:comp.lang.c FAQ 的第 6 节。它是关于 C 的,但该部分的大部分或全部内容也适用于 C++。