Форум программистов, компьютерный форум CyberForum.ru

Каким образом getchar() меняет содержимое массива? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ клас myDate http://www.cyberforum.ru/cpp-beginners/thread928358.html
Создайте класс Date, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами), а также операцию увеличения даты на определенное количество дней. с++ class myDate { public: myDate(); ~myDate(); private:
C++ Не могу побороть wxDevC++ - на Hello world "Проект не откомпилирован" Хотел попробовать wxDevC++ в деле. Установил. Само собой, для начала сделал Hello, world. И вдруг выскакивает окно "Проект не откомпилирован"... и никак не поборю это дело. Текст-то классический: #include <windows.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv) { printf("Hello World!\n"); http://www.cyberforum.ru/cpp-beginners/thread928353.html
C++ Определить какое число
Данная последовательность: 19, 39, 59, 79, 99, 119 ... И нужно определить, если введенное число относится к этой последовательности. Возможно ли это сделать вписав только одно условие?
Потоковый итератор C++
Добрый день. Читаю книгу Объектно-ориентированное программирование в С++ Лафоре, там приводится такой код: #include <iostream> #include <algorithm> #include <list> using namespace std; int main() {
C++ в чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread928311.html
#include <iostream> #include <windows.h> using namespace std; int main() { cout <<"20 & 50 = "<<(20&50)<<endl; cout <<"10 ^ 30 = "<<(10^30)<<endl; cout <<"60 | 25 = "<<(60|25)<<endl; system ("pause");
C++ Правильно сделана перегруженная операция присваивания? Проверьте, пожалуйста, эту часть. Программа неправильно работает и думаю ошибка в операторе присваивания // узел template<typename T> struct TNode { TNode<T> &operator=(TNode<T> *right); T value; // значение TNode<T> *ptrPrev; // указатель на предыдущий узел подробнее

Показать сообщение отдельно
FZ@8qQ
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 56
24.07.2013, 23:55     Каким образом getchar() меняет содержимое массива?
Здравствуйте!
Почему-то наличие getchar(); в коде влияет на содержимое массива. Если данный код не менять - то выводит правильный результат. Результат представлен на первом скрине. Если удалить первый getchar() с 21 строки, то в результате появляется абракадабра - представлено на втором скрине. Если удалить второй getchar(), то в результате вообще получаются нули - представлено на третьем скрине.

Мне по сути нужно, чтобы в массиве arr в конечном итоге содержался правильный результат, но getchar-ов быть не должно...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
using namespace std;
 
int main(int argc, char* argv[])
{
  int i, N=5, M=3;
 
  // Sozdaem i zapolnyarm pervii massiv arr
  int *arr = new int[N];
  for (i = 0; i < N; i++){
    arr[i] = i;
  }
getchar();
 
  // Sozdaem buf i kopiruem iz arr v buf to chto neobhodimo sohranit
  int *buf = new int[M];
  for (i = 0; i < M; i++){
    buf[i] = arr[i];
  }
getchar();
 
  // Udalyaem starii arr
  delete [] arr;
  // Sohranyaem buf s noivm imenem arr
  arr = buf;
  // Udalyaem buf
  delete [] buf;
 
  // Vivodim novii arr
  for (i = 0; i < N; i++){
    cout << arr[i] << endl;
  }
  getchar();
 
  // Udalyaem novii arr
  delete [] arr;
 
  return 0;
}
//---------------------------------------------------------------------------
P.S. Похоже не в ту тему написал, перенесите в обычный Cpp builder, если можно.
Миниатюры
Каким образом getchar() меняет содержимое массива?   Каким образом getchar() меняет содержимое массива?   Каким образом getchar() меняет содержимое массива?  

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru