Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > заполнение первого элемента массива


Автор: kLASTER 1.3.2013, 16:31
Здравствуйте!
Значит, создается массив и если первое значение сразу же ввести буквенную, то будет в первом элементе массива непонятное значение
Объясните пожалуйста почему первый элемент массива меняет значение.
Код

#include <iostream>

const int SIZE = 10;
void Fill_array(double ar[], int n);

using namespace std;

int main()
{ 
  double * p = new double[SIZE];
  Fill_array(p, SIZE);
    
  system("PAUSE");
  return 0;
}
void Fill_array(double ar[], int n)
{
  double temp;
  int i;
  for(i = 0; i < n; i++)
  {
    cin >> temp;
    if(!cin)
    {
      cin.clear();
      while(cin.get() != '\n')
        continue;
      cout << "Bad input.\n";
      break;
    }
    else if(temp < 0)
      break;
    ar[i] = temp;
  }
  for(i = 0; i < n; i++)
    cout << i << " = " << ar[i] << endl;
}

результат в картинке:
http://s1.ipicture.ru/uploads/20130301/2vXV2Zog.jpg
ЗАРАНЕЕ СПАСИБО!!!

Автор: bsa 1.3.2013, 16:46
начнем с того, а какое он имеет значение до ввода? Ты чем его заполнил? Оператор new не инициализирует данные!

Автор: kLASTER 2.3.2013, 08:28
тогда почему все остальные элементы инициализируются?

Автор: bsa 2.3.2013, 12:31
kLASTER, они не инициализируются. они имеют случайные значения. На другом компе или при выборе другого профиля сборки могут быть другие значения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)