2

構造を動的に割り当てようとしていますが、正しく行っているかどうかを知る必要があります。私の本によると、私はそうです。しかし、私のコンパイラは私にエラーを出します。関連するコードは次のとおりです。

#include <iostream>
#include <string>
#include <cstdlib>  
#include <iomanip>

using namespace std;

//Declare structure
struct Airports{
    string name;
    string airID;
    double elevation;
    double runway;};

Airports *airptr;

airptr = new Airports[3];//This is where the error is happening

コンパイラは、airptrには「ストレージクラスまたは型指定子がない」と考えているようです。構造を定義してからairptrをその構造へのポインターとして定義したので、それがどのように見えるかわかりません。ここで何かが足りませんか?

返信ありがとうございます

4

1 に答える 1

2

私がこれを書いているとき、質問で提示されたコードは…

#include <iostream>
#include <string>
#include <cstdlib>  
#include <iomanip>

using namespace std;

//Declare structure
struct Airports{
    string name;
    string airID;
    double elevation;
    double runway;};

Airports *airptr;

airptr = new Airports[3];//This is where the error is happening

関数の外部にある非宣言ステートメントを使用すると、コンパイラーはそれを宣言として解釈しようとしますが、失敗します。

それをmain関数に入れてください。


また、std::vector生の配列、ポインター、およびの代わりに使用newすることで、多くのエラーや面倒な作業を回避できます。

于 2012-12-12T02:44:45.177 に答える