错误 C2440:"=":无法从"int"转换为"int*"
Error C2440: '=' : cannot convert from 'int' to 'int*'
我正在尝试将一个元素添加到C++中的对偶链表中。我遇到了一个错误,告诉我它无法从int转换为int*。以下是发生错误的代码:
void DLList::addNode(int data, int priority) {
node *n;
n = new node;
n->priority = priority;
n->data = data;
if (DLList::first == NULL)
DLList::first = n;
else
DLList::last = n;
}
值data和优先级都是通过主函数中的随机数生成器选择的整数值,用于调用addNode
函数。错误确实发生在线上
n->data = data;
这是节点的结构:
struct node {
int priority;
int *data;
node *next;
node *prev;
};
由于data
是您的示例中唯一的int
,我将继续假设错误在这一行
n->data = data;
所以你的node
结构中有这样的东西:
struct node
{
//Nodey stuff
int* data;
};
因此,n->data = data;
毫无意义。你本来打算做*(n->data) = data;
的。
编辑:正如T.C.在评论中指出的,这个解决方案假设您确实为node::data
分配了空间。一个更清洁的解决方案是将node::data
变成这样的int
:
struct node {
int priority;
int data;
node *next;
node *prev;
};
现在,您不需要更改DLList::addNode
。n->data = data
会正常工作。
好吧,我现在错过了它,感觉有点傻!感谢所有发表评论的人。问题是数据被声明为int *data
,我从数据中删除了*,代码现在可以工作了!谢谢大家的回复,我为这个愚蠢的问题道歉。。。
相关文章:
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 将字符串中的 int 转换为字母;
- 主.cpp:18:20:错误:从"int*"转换为"int"会失去精度 [-fa
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 如何将矢量<int>转换为字符数组?
- C++ 无法从 const int* 转换为 const_iterator
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- 如何将 int[4] 转换为 std::array<int,4>?
- 如何将data[i].int转换为vaible
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将私有矩阵形式 int 转换为双 C++
- 无法将参数 1 从 'int' 转换为 'int &'
- 将 int 转换为字符串后始终得到 0
- isspace 函数的性能警告,从 int 转换为布尔值
- 将大 int 转换为浮点数,而不舍入 c++
- 错误:无法将'uint8* {aka unsigned int*}'转换为"常量emxArray_uint8_T*"?
- 将未签名的INT转换为BCD
- 在 C++ 中将 int 转换为双精度