这是一个家庭作业问题。该程序已成功构建,但无法运行。它刚刚停止。我试图使用“struct”来制作一个列表。我不知道我的“插入”功能有什么问题。这是我第一次来这里,希望我会得到一些建议。
//============================================================================
// Name : test2.cpp
// Author : yan zeng
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
typedef int BOOLEAN;
using namespace std;
struct Node {
int value;
struct Node *next;
};
void insert(int x, struct Node **pL);
void insert(int x, struct Node **pL){
if (*pL == NULL) {
struct Node **pL = (struct Node **) malloc(10 * sizeof(int *));
(**pL).value = x;
(*pL)->next = NULL;
}
else
insert(x, &((*pL)->next));
}
int main (int argc, char **argv)
{
// insert code here...
// make a list by declaring a pointer to a node
struct Node *NodePointer = NULL;
for (int i=3; i<20; i+=2) {
insert(i,&NodePointer);
}
}
答案 0 :(得分:0)
我能给你的最好建议是学习如何使用调试器。其他建议:不要在C ++中使用malloc/free
,请使用new/delete
。
答案 1 :(得分:0)
此代码中存在相当多的问题,使用调试器肯定会有所帮助。
你的程序“停止”因为它在
崩溃了(**pL).value = x;
我不确定此代码是否作为修复作业提供给您,或者是否提供了空功能,您需要填写它。无论哪种方式,这条线都是错误的。
此外,正如其他人所提到的,当您使用malloc
时,您在C ++程序中使用new
。