내 프로그램이 작동하지만 내 교수가 내 코드가 잘못되었다고 말하지만 그가 가을 학기에 왜 나타날지에 대해 이야기합니다 ... 그게 무슨 소리 죠? 아마도 뭔가 잘못되었습니다? 당신이 잘못된 경우에도 나는 아마도 포인터로 크기를 조정할 수있는 배열
m_paintValues = new int [m_intArraySize];
m_paintValues
void CResizableArray::SetSize(int intNewSize)
{
int intIndex = 0;
if(intNewSize < 0) intNewSize = 0;
if(intNewSize > intMAXIMUM_ARRAY_SIZE)
{
intNewSize = intMAXIMUM_ARRAY_SIZE;
}
//////////////////////////////////////
// ---> HUGE BUG HERE <--- //
// Code works but is WRONG //
// WHY IS THIS HELP ME FIND THE BUG //
//////////////////////////////////////
m_intArraySize = intNewSize;
m_paintValues = new int [m_intArraySize];
// Initialize to zero
for(intIndex = 0; intIndex < m_intArraySize; intIndex++)
{
*(m_paintValues + intIndex) = 0;
}
}
'm_paintValues [intIndex]'대신'* (m_paintValues + intIndex)'를 사용하는 특별한 이유가 있습니까? 배열 포인터 동등성을 탐색하는 것뿐 이었습니까? 더 나은 것은'new int [m_intArraySize]()'일 것이고, 이것은 당신을 위해 초기화 할 것이다. – Shoaib
'std :: vector'를 사용할 때 버그를 소개 할 이유가 있습니까? –
나는 그 방법에 익숙하지 않다. 아마도 나를 계몽 할 수 있을까? –