2012-07-04 2 views
0

아래 코드를 실행하는 동안 _BLOCK_TYPE_IS_VALID 오류가 발생합니다. 나는 이것이 벡터에 다른 객체를 추가하는 것과 공통점이 있다고 가정하지만 실수를하는 곳을 찾을 수는 없다. 나는이 프로그램의 이전 버전이 벡터를 사용하지 않고 작성 되었기 때문에 클래스 코드를 추가하지 않고 잘 돌아갔다. 필요한 경우 변수 이름을 영어로 번역하거나 어떤 변수가 사용되는지 설명 할 수 있습니다.Error : _BLOCK_TYPE_IS_VALID

#include "stdafx.h" 
#include "CStop.h" 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
vector<CStop>Stops; 

string* array= NULL; 
string name,text; 
int length,time,howMany,n; 

cout<<"How many stops? "<<endl; 
cin>>n; 

for(int i = 0; i < n; i++) 
{ 
    cout<<"Type name, length , time, how many stops"<<endl; 
    cin>>name>>length>>time>>howMany; 
    if(howMany> 0) 
    { 
     cout<<"Type stops names"<<endl; 
     array= new string[howMany]; 
     for(int i = 0; i<howMany;i++) 
     { 
      cin>>text; 
      array[i] = text; 
     } 
    } 
    CStops temp(name, length,time,howMany,array); 
    Stops.push_back(temp); 

    if(howMany> 0) delete[] array; 
} 

for(int i=0;i<Stops.size();i++) 
{ 
    cout<<Stops[i].Info()<<endl; 
} 
return 0; 
} 

미리 도움을 주셔서 감사합니다.

+0

공백없는 영어 이외의 식별자는 혼란스럽게 보입니다. –

+0

프로그램이 힙을 손상시킬 때 Microsoft CRT에서이 어설 션을 받게됩니다. 이해하기 어려운 코드가 있으면 동료의 도움을 요청하십시오. –

+0

영어로 코드를 번역했습니다 – Divh

답변

0

내 재 작성 클래스 코드를 제 문제가 해결했습니다. 벡터에 대한 클래스 지원을 추가했습니다. 클래스가 배열에서 작동 할 때 왜 이상한 오류가 발생하는지는 모르지만 모든 것이 작동하지는 않습니다. 누군가가이 오류의 의미와 피하는 방법을 말할 수 있다면 감사 할 것입니다.