Я занимаюсь массивами и указателями от книги Алекса Аллана.Как показать вывод на экране?
#include <iostream>
#include <fstream>
using namespace std;
int *growArray (int* p_values, int cur_size);
int main()
{
int next_element = 0;
int size = 10;
int *p_values = new int[ size ];
int val;
cout << "Please enter a number: ";
cin >> val;
while (val > 0)
{
if (size == next_element + 1)
{
// now all we need to do is implement growArray
p_values = growArray(p_values, size);
}
p_values[ next_element ] = val;
cout << "Please enter a number (or 0 to exit): ";
cin >> val;
}
}
int *growArray (int* p_values, int cur_size)
{
int *p_new_values = new int[ cur_size * 2 ];
for (int i = 0; i < cur_size; ++i)
{
p_new_values[ i ] = p_values[ i ];
cout << p_new_values[ i ] << endl;
}
delete p_values;
return p_new_values;
}
Но когда я выполняю код
Please enter a number: 6
Please enter a number (or 0 to exit): 0
Почему я отсутствующий вывод на экран для p_new_values
массива? Можно ли положить cout
в определение функции или нет?
Вы уверены, не существует 'next_element ++' отсутствует где-то? – dhke
Если вы внимательно прочитаете книгу, вы увидите, что в вашем коде строка 'p_values = growArray (p_values, size);' отсутствует амперсанд («&») и что функция 'growArray', которую вы написали, очень отличается от той, что написана в книге. – molbdnilo
даже с 'next_element ++', я все еще не уверен, что этот пример примерно –