-1
このコードを実行しようとすると、なぜこのエラーが発生するのかわかりません...構造体の参照を渡すと、これと何が問題になりますか...構造体の参照を渡すときに未定義の参照エラーが発生する
これはエラーです:関数宣言と定義のパラメータの型が一致しないので
#include <iostream>
using namespace std;
struct type {
int x[500] = {0};
int y[500] = {0};
int lx = 0;
int ly = 0;
int aparitii[10000] = {0};
};
void citire(type s);
bool estePrim(type s);
int sumaCfr(type s);
void createY(type s);
void printY(type s);
int main()
{
type s;
citire(s);
cout<<"X LENGTH = "<<s.lx<<endl;
return 0;
}
void citire(type &s)
{
int i = -1;
cin>>s.x[++i];
while (s.x[i] != 0) {
cout<<"Insert " << i + 1<< " value"<<endl;
cin>>s.x[++i];
}
s.lx = i;
}
あなたのプロトタイプはありませんあなたの定義に合わない: 'void citire(type s)'対 'void citire(type&s)'。あなたのコンパイラはこれについて警告する必要があります - あなたは警告を有効にするのを忘れましたか、または無視しましたか? –
@PaulRコンパイラは警告してはいけません.C++には関数がオーバーロードされています。プログラマの意図は、別のユニットに定義されている 'citire(type)'を呼び出すことでした。 –
@MM: '-Wmissing-declarations'がある場合、gccはプロトタイプが不足していることを警告します(http://coliru.stacked-crooked .com/a/3b8573173e9c477d)。 –