0

これは宿題の問題です。プログラムは正常にビルドされましたが、実行できません。止まった。「構造体」を使用してリストを作成しようとしました。「挿入」機能の何が問題になっているのかわかりません。ここは初めてです。アドバイスをいただければ幸いです。

//============================================================================
// 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);
    }



}
4

2 に答える 2

0

このコードにはかなりの数の問題があります。デバッガーを使用すると、ここで間違いなく役立ちます。

あなたのプログラムはでクラッシュするので「ただ停止」します

(**pL).value = x;

このコードが修正の宿題として提供されたのか、それとも空の関数が提供されたのかわからないので、記入する必要があります。いずれにせよ、その行は間違っています。

また、他の人が述べたように、を使用mallocする必要があるときにC++プログラムで使用していnewます。

于 2012-04-15T19:17:02.430 に答える
0

私があなたにできる最善のアドバイスは、デバッガーの使い方を学ぶことです。malloc/freeその他のアドバイス: C++ では使用しないでくださいnew/delete

于 2012-04-15T18:44:06.047 に答える