Im에 새롭다. 최근에 왜 위의 코드가 컴파일되고 실행되는지 이해하려고 시도했지만 갑자기 첫 번째 등급 충돌을 입력, 나는 그 문제가 내가 "성적 [i] = GradeStudent"대신 성적을 저장하는 "push_back"함수를 사용하려고 할 때였다는 사실을 알고 있지만 그 이유를 이해하지 못한다. 그리고 나는 정말로 원한다. 그런 식으로 일하는 것이 아닙니다. 정말 도움이됩니다. 죄송합니다. 제 질문을 올바르게 작성하지 않은 경우 stakoverflow를 사용하여 질문을하는 것이 처음입니다.내 코드가 "스레드 1 :: EXC_BAD_ACCESS (코드 = 1, 주소 = 0x8)"
pd :(표준 라이브러리에서 iostream, vector 및 iomanip을 #include했습니다.) :(preproccesor 태그를 #include했습니다.) Grade
벡터가 비어 있기 때문에 당신에게
int main() {
std::vector<double> Grade;
int i = 0;
double GradeStudent = 0.0;
std::cout << "introduce the vector valúes.\n";
std::cout << "To end introduce -1.\n";
//Add grades
while(true){
std::cout << "Grade[" << i++ <<"] = ";
std::cin >> GradeStudent;
if(GradeStudent == -1){
break;
}
// Grade.push_back(GradeStudent);
Grade[i] = GradeStudent;//-->if i use that,instead the "push_back" the code crash
}
std::cout << std::endl;
return 0;
}