다음 함수는 객체의 데이터베이스에 포인터를 할당하여 객체의 데이터베이스에 메모리를 할당해야합니다.새로운 : 잠재적으로 초기화되지 않은 포인터 "
그러면 포인터가 포인터 연산을 사용하여 배열을 루프 다운하고 사용자 입력에 따라 각 개체를 올바른 값으로 초기화합니다. 여기
작동하지 않는 코드 ://**********************************************************************
//* Get Database Records *
//**********************************************************************
record* get_records_database(int quantity)
{
record *p_database; // Pointer to the records database
record *p_record; // Pointer to each object in the database
int index = 1; // Number of objects in the database
// Allocate a database of object records
try
{
p_database = new record[quantity];
}
catch (bad_alloc xa)
{
fatal_error(ALLOC_ERR, "get_records_database",
"object records database");
}
// Loop processing object records until the database is filled
// --- //
// Test:
p_database->set_amount(400);
p_database->get_amount();
return p_database;
}
난으로 VisualStudio에서 다음 컴파일러 에러를 수정한다 당면한 문제점 : 오류 C4703 : 잠재적 초기화 로컬 포인터 변수 'p_employee_database'사용.
이것은 프로젝트입니다. new, try, catch 및 pointers를 사용하는 것이 필요합니다. 함수의 구조가 필요합니다 (이 시점에서 모두 쓰는 것은 아닙니다). 클래스에 대한 포인터의 반환 값이 필요합니다. 선생님은 자신의 요구 사항을 정확하게 따르는 데 극도로 엄격합니다.
이 오류를 해결하는 데 큰 도움이됩니다. 그러나 당신이 함수에서 반환하는 데 실패는 p_employee_database
가 초기화되지, 예외가 throw되면
try
{
p_employee_database = new employee_bonus_record[employee_quantity];
}
catch (bad_alloc xa)
{
fatal_error(EMPLOYEE_ALLOC_ERR, "get_employee_records_database",
"employee bonus records database");
}
//.. rest of code, assuming p_employee_database is ok.
: 여기에 코드 적어도 두 가지 문제가 있습니다)
'fatal_error' 란 무엇이며 오류가 발생해도 오류가없는 것처럼 코드가 계속 실행되는 이유는 무엇입니까? – PaulMcKenzie
@PaulMcKenzie 치명적인 오류 기능은 오류 메시지를 인쇄하고 오류 번호와 함께 종료합니다. –
무엇을 종료합니까? 프로그램?? – PaulMcKenzie