gpt4 book ai didi

c++ - 错误 : invalid operands of types 'const char [3]' and 'int*' to binary 'operator*'

转载 作者:行者123 更新时间:2023-11-30 03:44:22 24 4
gpt4 key购买 nike

所以在我的程序中,我应该让用户输入一个基数,最多 32 个基数,以及一个要转换的随机十进制值。因此,如果用户输入 5 和 10,则必须以 5、4、3 和 2 为基数在屏幕上打印 10。但是,这是我第一次使用动态分配,所以我遇到了奇怪的错误,这是一个我无法修复的。 (d代表十进制值,b代表基数,arrayPtr是我的动态分配数组)

        while(d != 0 && d>b)
{
*arrayPtr = digits[(d%b)];
d = d/b;
arrayPtr++;
n++;
}

//print statement to read array backwards to give correct output
for (int i=n-1; i>=0; i--)
{
cout<<"Base "<<i <<": "*(arrayPtr+(i*sizeof(*arrayPtr)))<<" "; }
b--;
cout<<endl;

我收到一个错误(类型为“const char [3]”和“int*”的无效操作数到二进制“operator*”):cout<<"基础"<(arrayPtr+(isizeof(*arrayPtr)))<<"";谁能帮我理解为什么会这样?

最佳答案

您缺少一个 <<": " 之间和 *(...)所以你试图乘以编译器的东西": "通过括号中表达式的值。

//---------------------v
cout<<"Base "<<i <<": "*(arrayPtr+(i*sizeof(*arrayPtr)))<<" ";

应该阅读

cout<<"Base "<<i <<": "<<*(arrayPtr+(i*sizeof(*arrayPtr)))<<" ";
//---------------------^^

这就是为什么人们倾向于在运算符之间放置空格,以便更容易发现这样的错误。

cout<<"Base "<<i<<": "*(arrayPtr+(i*sizeof(*arrayPtr)))<<" ";
//vs
cout << "Base " << i << ": " << *(arrayPtr + (i * sizeof(*arrayPtr))) << " ";

关于c++ - 错误 : invalid operands of types 'const char [3]' and 'int*' to binary 'operator*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com