"error: invalid conversion from 'int*' to 'int' function"
"error: invalid conversion from 'int*' to 'int' function"
当我试图编译以下代码时,我得到了错误:
错误:从"int*"到"int"函数的转换无效
代码为:
#include <iostream>
#include <algorithm>
using namespace std;
void makedeck(int);
int main(){
int pHand[10]={0};
int dHand[10]={0};
int deck[52];
makedeck(deck); //Error is given for this line
random_shuffle(&deck[0],&deck[10]);
return 0;}
void makedeck(deck[]){
int a=0;
for(int x=101;x<114;x++)
{
deck[a]=x;
a++;
}
for(int x=201;x<214;x++)
{
deck[a]=x;
a++;
}
for(int x=301;x<314;x++)
{
deck[a]=x;
a++;
}
for(int x=401;x<414;x++)
{
deck[a]=x;
a++;
}
}
我试图以某种方式暗示指向参数的指针,但我想知道问题本身的实际原因。我刚刚检查了另一个代码,它与各种变量、参数、函数和它们的调用非常相似,然而,尽管那个代码运行得很好,但我的代码失败了。为什么?
您的函数声明说makedeck函数有一个整数参数:
void makedeck(int);
但是实际的函数定义是不同的(而且似乎也是错误的),它需要一个整数数组:
void makedeck(deck[]){
你只需要将这两个修复为:
void makedeck(int *);
和
void makedeck(int *deck){
您对makedeck
的声明是错误的
void makedeck(int); // Declaration
...
void makedeck(deck[]){ // Definition.
它们应该匹配,并且您还必须在定义中声明参数的类型。
void makedeck(int deck[]); // Declaration
...
void makedeck(int deck[]){ // Definition.
您调用一个以int数组为arg的函数,这是一个指向int的指针,因此您的函数应该是这样的:
void makedeck(int deck[]);
或(更好):
void makedeck(int* deck);
相关文章:
- 为什么选择 g++ 给予者:"error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]"
- static_cast int to reference to int?
- 访问基类型数组成员(Int-to-type习惯用法)
- Int to Base 2 & 8 优化
- ASCII to int to ASCII (ATMEGA 2560)
- 简单的 int 到字符串转换..int to const char* 无效
- visual Int to char c++
- 隐式转换更改符号性 'int " to 'unsigned int"
- 如何修复此错误错误"error C2440: '=' : cannot convert from 'int (*)[]' to 'int *' "?
- int to char C++ help me
- Int to PCSTR for Winsock DEFAULT_PORT
- 将 double 分配给 const int&vs int to const int&
- "cannot Convert vector<int>* to int"是什么意思?
- 如何解决此棉绒警告"Implicit binary conversion from int to unsigned int"
- c++ int to char
- 为什么我会收到"cannot convert from Dequeu<int> to int"错误?
- "error: invalid conversion from 'int*' to 'int' function"
- "Truncation from int to char"不产生任何结果
- Cast int to void* and void* to int for TMemoryStream->WriteBuffer (C++Builder XE7)
- C++ Int to Array without Libs