C ++项未添加到数组中

时间:2015-09-18 22:34:45

标签: c++ arrays pointers long-integer heap-memory

如果数组中的点处的值为零,则以下过程应该是Item到数组。这样,如果我需要动态增长数组,我可以使用新数组元素创建新数组,将所有Items添加到数组,然后将新元素初始化为Zero,然后使用此代码填充该元素。当我打印数组但是我回来的所有内容都是MIN_VALUE很长一段时间。我错过了什么?

void CResizableArray::SetSize(long lngNewSize)
{

long* palngNewValues;

// Boundary Checks
if (lngNewSize < 0) lngNewSize = 0;


palngNewValues = new long[lngNewSize];

// Initialize empty items in the array to zero
InitializeArray(palngNewValues, lngNewSize);

// Populate the array
PopulateArray(palngNewValues, lngNewSize);

}



void CResizableArray::InitializeArray(long* &palngValues, long lngArraySize)
{

long lngIndex = 0;

// Initialize Array
for (lngIndex = 0; lngIndex < lngArraySize; lngIndex += 1)
{
    // Is there anything in that spot?
    if (*(palngValues + lngIndex) < 0)
    {
        *(palngValues + lngIndex) = 0;
    }

}

// Delete Old array
delete[] m_palngValues;
m_palngValues = 0;

// Assign New array
m_palngValues = palngValues;

//// Assign Size
m_lngArraySize = lngArraySize;

}



long CResizableArray::GetSize()
{
return m_lngArraySize;
}


void CResizableArray::PopulateArray(long* &palngNewValues, long lngArraySize)
{

long lngIndex = 0;

// Populate array
cout << "Please Populate ----------\n" << endl;

// Test value to see if it functions correctly
 *(palngNewValues + 1) = 5; 

for (lngIndex = 0; lngIndex < lngArraySize; lngIndex += 1)
{
    // Check if anything is in this spot
    if (*(palngNewValues + lngIndex) == 0)
    { 
        cout << "Enter value[ " << lngIndex << "]: ";
        cin >> *(palngNewValues + lngIndex);
    }
}
cout << "" << endl;

// Delete Old array
delete[] m_palngValues;
m_palngValues = 0;

// Assign the Values to the new array
m_palngValues = palngNewValues;

// Print
Print(m_palngValues, lngArraySize);

}




void CResizableArray::Print(long* palngValues, const long lngArraySize)
{

long lngIndex = 0;

cout << "Print ----------\n" << endl;
for (lngIndex = 0; lngIndex < lngArraySize; lngIndex += 1)
{
    cout << "Value[ " << lngIndex + 1 << " ] = " << *(palngValues +    lngIndex) << endl;
}
cout << "" << endl;
system("pause");
}

0 个答案:

没有答案