C++ 中请求从 'node*' 型转换为非标量型'node'
conversion from 'node*' to non-scalar type 'node' requested in C++
我只是尝试使用链表机制使用 C++(使用基本 C)创建一个数独求解器。这样做时,我遇到了这样的错误
- 在函数
node addnode(int, node*)
中: -
Line 29: error: conversion from 'node*' to non-scalar type 'node' requested
- 编译因
-Wfatal-errors
而终止。
在函数node addnode(int, node*)
中:
#include <iostream>
using namespace std;
struct node
{
int cellvalue;
int cellpos;
int rowpos;
int colpos;
int blockpos;
node *next;
} cells[81];
struct node addnode (int value,struct node *lastpos)
{
node *newnode;
newnode=new node;
newnode->cellvalue = value;
newnode->cellpos=value;
newnode->rowpos=value%9;
newnode->colpos=value/9;
newnode->blockpos=0;
lastpos->next=newnode;
newnode->next = NULL;
printf("Value : %d", newnode->cellvalue);
lastpos=newnode;
return &lastpos;
}
int main()
{
int i=0,value;
node *header, *lastnodeaddr, *lastpos;
lastnodeaddr=NULL;
for (i=0;i<81;i++)
lastnodeaddr=addnode (i,lastnodeaddr);
}
在这里:
lastnodeaddr=addnode (i,lastnodeaddr);
lastnodeaddr
是指向 node
的指针,但addnode
返回一个按值node
。
> In addnode
lastpos
是指向node
的指针,您返回&lastpos
这意味着双指针作为node**
但addnode
被声明为按值返回node
,因此出错。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- 在 node.js 中将缓冲区从 C++ 转换为 UTF-8 字符串
- 链表(从 'Node<int>*' 到 'int' 的转换无效 [-fallowive]|)
- 请求从非标量类型"node*"转换为标量类型 "node"
- '=' : 无法从'CircularDoubleDirectedList<int>::Node *'转换为'Node *'
- C++ 中请求从 'node*' 型转换为非标量型'node'
- 错误 C2440:'=':无法从 'Node<ValueType> *' 转换为 'Node<ValueType> *'
- 无法编译C++代码:从'Node*'到'int'的转换无效
- C2664 无法将参数 1 从 'const char *' 转换为 'Node*'
- C2440 '=' 无法从 'int' 转换为 'BST:<int>:Node*
- C2678 二进制"<":未找到采用 'const Node' 类型左操作数的运算符(或没有可接受的转换)
- node.js中使用node-gyp的转换数组
- Node.js 6增加了将Buffer.from()转换为const UInt8*的功能
- Node.js c++绑定错误:'('标记之前期望的构造函数、析构函数或类型转换
- 无法'this'指针从'const Node'转换为'Node &'
- 在C++中将一行转换为Node
- 映射和节点,错误智能感知:不存在从"const std::pair<const int, double>"到"Node"的合适用户定义转换