リファレンスパス、ポインタ、およびC++の構造体でこの2を使用する方法についてもう少し学ぶために簡単なプログラムを実行しようとしていました。エラー: ''がこのスコープで宣言されていません
「エラー: 'totalStudent'はこのスコープでは宣言されていませんでした」というエラーが発生しました。私の質問は、「totalStudent」をどのように宣言する必要がありますか?
#include <iostream>
using namespace std;
struct test{
char name[30];
int age;
};
void addStudent(struct test *ptrTest,int *totalStudent){
for(int i=0;i<2;i++){
cout<<"\nInsert the name: ";
cin.sync();
cin.getline(ptrTest->name,sizeof(ptrTest->name));
cout<<"\nInsert the age: ";
cin.sync();
cin>>ptrTest->age;
*totalStudent+=1;
}
}
void showStudent(struct test *ptrTest,int totalStudent){
for(int i=0;i<totalStudent;i++){
cout<<"\nName: "<<ptrTest->name;
cout<<"\nAge: "<<ptrTest->age;
}
};
int main()
{
struct test t;
addStudent(&t,&totalStudent);
showStudent(&t,totalStudent);
return 0;
}
構造体のポインタと参照節をうまく使用することはできません。構造体を使用していないときにしか使用できません。 C++で使用すると、関数の宣言に `struct`を追加する必要はありませんことを
int main()
{
struct test t;
// LIKE THIS
int totalStudent;
addStudent(&t,&totalStudent);
showStudent(&t,totalStudent);
return 0;
}
注: – WhatsUp
ありがとうございます、私はまだテストしていますので、私は何ができるのか分かりませんでした。ありがとうございました。D –
あなたのプログラムには参照がありません。あなたはポインタを渡しています。 – aschepler