하지 않았는데 C++ 기능은 변수를 파괴하고 그것은 임시 배열에 배열을 복사 삭제하고 원본을 재현하여이를 수행 더 큰 크기. 내 문제는 내가 함수를 실행할 때 구조체 내의 모든 내 값이 '-17891602'가된다는 것입니다. 내가 틀렸다면 저를 고치십시오. 그러나 이것이 변수가 삭제 된 때를 보여주는 값이라고 생각합니까? 나는 그 문제를 알아낼 수 없다. 그러나 여기에 정의가 있습니다.는이 기능의 목적은 구조체를 가지고 가고, (1)에 의해 배열을 확대하는 것입니다
void Array::addValueStruct(int id, int size, int type, int compareValue, StoredData temp[])
{
//struct
StoredData* tempStruct = new StoredData [arrSize+1];
for (int i=0;i<arrSize;i++)
{
tempStruct[i] = temp[i];
}
arrSize = arrSize + 1;
delete [] temp;
temp = tempStruct;
temp[arrSize-1].id = id;
temp[arrSize-1].size = size;
temp[arrSize-1].type = type;
temp[arrSize-1].compareValue = compareValue;
}
또한이 방법이 유용 할 지 모르지만 함수 호출.
test.addValueStruct(5,5,5,5,testData);
업데이트 : 문제가 해결되었습니다.
어디 arrSize는 선언? 누가 그것을 사용할 수 있습니까 ?? – Netwave
어떻게 함수를 호출합니까? 인수로 전달하는 변수를 어떻게 선언/초기화합니까? –
arrSize는 cpp 파일의 맨 위에 전역으로 선언됩니다. 전에 클래스 배열에 성공적으로 사용했기 때문에 이것이 문제라고 생각하지 않습니다. – WorldsWorstProgrammer