だから私は構造を定義します
struct PAIR{
int a;
int b;
int dist;
};
この後、関数で Pair * vec; を定義しようとします。そしてそれは私に与えます
optim.cpp:97:4: error: ‘Pair’ was not declared in this scope
optim.cpp:97:10: error: ‘vec’ was not declared in this scope
どうしたの?
だから私は構造を定義します
struct PAIR{
int a;
int b;
int dist;
};
この後、関数で Pair * vec; を定義しようとします。そしてそれは私に与えます
optim.cpp:97:4: error: ‘Pair’ was not declared in this scope
optim.cpp:97:10: error: ‘vec’ was not declared in this scope
どうしたの?
C では大文字と小文字が区別されるため、Pair の代わりに PAIR を使用する必要があります。
gcc と g++ のどちらのコンパイラを使用しているかわかりません。g++ を使用している場合 (表示されているファイルは optim.cpp であるため)、Pair を PAIR に修正するだけで問題を解決できると思います。gcc を使用する場合は、構造体にstructプレフィックスを追加する必要があります。
c は大文字と小文字を区別します。ペアとペアは同じではありません。
さらに、struct PAIR は自動的に typedef になりません。
変数/ポインターを次のように宣言する必要があります
struct PAIR * instance;
または、最初に typedef する必要があります
typedef struct PAIR
{
// variables;
} Pair; // note the typedef name appears at the end.
今、あなたはこのようにすることができます
Pair var;
C++ では、型は自動的に typedef になりますが、c ではそうではありません
試す:
struct PAIR *ve;
代わりは。