C++ポインタの参照を関数パラメータとする

878 ワード

#include
using namespace std;
struct Teacher
{
	char name[64];
	int age;
};
//           
//      ,    
int getTea(Teacher **p)
{
	Teacher* tmp = NULL;
	if (p == NULL)
	{
		return -1;
	}
	tmp = (Teacher*)malloc(sizeof(Teacher));
	if (tmp == NULL)
	{
		return -2;
	}
	tmp->age = 45;
	//p          *                
	*p = tmp;
}
//            
int getTea1(Teacher * &p)
{
	p = (Teacher*)malloc(sizeof(Teacher));
	if (p == NULL)
	{
		return -1;
	}
	// p        main    pt1  
	p->age = 9;
}
void freeTea(Teacher *p)
{
	if (p = NULL)
	{
		return;
	}
	free(p);
}
int main()
{
	Teacher *pt;
	Teacher *pt1;
	getTea(&pt);
	cout << "age="<age<< endl;
	freeTea(pt);

	getTea1(pt1);
	cout << "age1="<age<< endl;
	freeTea(pt1);
	system("pause");
}