0

我只是尝试通过使用链表机制使用 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);
}
4

2 回答 2

1

这里:

lastnodeaddr=addnode (i,lastnodeaddr);

lastnodeaddr是指向 的指针node,但按值addnode返回 a node

于 2013-09-24T07:08:02.803 回答
-1

Inaddnode lastpos是一个指向node并且您正在返回的指针,&lastpos这意味着一个双指针,node**addnode被声明为按值返回node,因此错误。

于 2013-09-24T07:10:58.273 回答