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

Как такое может быть? - C++

Восстановить пароль Регистрация
 
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.07.2010, 06:00     Как такое может быть? #1
Пишу программку... Начало функции мейн. Не прошло еще ничего кроме файла:

int k=1;
int l=1;

На что компилятор мне выдает, что значения переменных не такие как я присвоил (по 1), а собственно:

k -2 int
l 4203524 int

Впервые встречаюсь с таким...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
23.07.2010, 06:07     Как такое может быть? #2
Весь код покажи.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.07.2010, 06:09  [ТС]     Как такое может быть? #3
NightmareZ, Да я даже убрал заголовочный файл в комменты... Все равно такое гонит...

Добавлено через 1 минуту
Значение k: k 4206644 int
А это в след строке... k 2085223112 int



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
#include <iostream>
#include <cstdlib>
//#include "Classes.h"
int main()
{
    int k=0;
    int l=1;
    std::cout<<"Enter k: 1 for work with Transport, 2 for work with Town transport\n";
    std::cin>>k;
    std::cin.get();
    std::cout<<k;
    //if(k==1)
    //{
    //  std::cout<<"Enter l: 1 for work with Car, 2 for work with Truck\n";
    //  std::cin>>l;
    //  std::cin.get();
    //  if(l==1)
    //  {
    //      Car*Ob;
    //      int Num=0;
    //      std::cout<<"Enter num of elements in array\n";
    //      std::cin>>Num;
    //      std::cin.get();
    //      Ob=new Car[Num];
    //      for(int i=0;i<Num;++i)
    //          std::cin>>Ob[i];
    //      for(int i=0;i<Num;++i)
    //          std::cout<<Ob[i];
    //      delete[] Ob;
    //  }
    //  else if(l==2)
    //  {
    //      Truck*Ob;
    //      int Num1=0;
    //      std::cout<<"Enter num of elements in array\n";
    //      std::cin>>Num1;
    //      std::cin.get();
    //      Ob=new Truck[Num1];
    //      for(int i=0;i<Num1;++i)
    //          std::cin>>Ob[i];
    //      for(int i=0;i<Num1;++i)
    //          std::cin>>Ob[i];
    //      delete[] Ob;
    //  }
    //}
    return 0;
}
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
23.07.2010, 06:09     Как такое может быть? #4
Код покажи



Запустил я твою и что должно получииться?
ввести/вывести k? и дальше что?
я "1" ввел он "1" и вывел..
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.07.2010, 06:20  [ТС]     Как такое может быть? #5
vet, Это конечно прекрасно. У меня он тоже выводит. Но блин. Прогон построчно должен выдавать аналогичные результаты, а не те числа...
проход построчно вот что выдает в Watch:
k CXX0017: Error: symbol "k" not found

Оставил только:
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
#include <iostream>
//#include <cstdlib>
//#include "Classes.h"
int main()
{
    int k=0;
    int l=1;
    /*std::cout<<"Enter k: 1 for work with Transport, 2 for work with Town transport\n";*/
    /*std::cin>>k;
    std::cin.get();*/
    std::cout<<k;
    //if(k==1)
    //{
    //  std::cout<<"Enter l: 1 for work with Car, 2 for work with Truck\n";
    //  std::cin>>l;
    //  std::cin.get();
    //  if(l==1)
    //  {
    //      Car*Ob;
    //      int Num=0;
    //      std::cout<<"Enter num of elements in array\n";
    //      std::cin>>Num;
    //      std::cin.get();
    //      Ob=new Car[Num];
    //      for(int i=0;i<Num;++i)
    //          std::cin>>Ob[i];
    //      for(int i=0;i<Num;++i)
    //          std::cout<<Ob[i];
    //      delete[] Ob;
    //  }
    //  else if(l==2)
    //  {
    //      Truck*Ob;
    //      int Num1=0;
    //      std::cout<<"Enter num of elements in array\n";
    //      std::cin>>Num1;
    //      std::cin.get();
    //      Ob=new Truck[Num1];
    //      for(int i=0;i<Num1;++i)
    //          std::cin>>Ob[i];
    //      for(int i=0;i<Num1;++i)
    //          std::cin>>Ob[i];
    //      delete[] Ob;
    //  }
    //}
    return 0;
}
Добавлено через 4 минуты
Сюда он вполне переходит... Но потом я не могу выполнить условие цикла...

Значение l сразу после входа в условие: l 4203342 int
Значение Num1 которое я инициализирую как НОЛЬ: Num1 1 int
После ввода 2: Num1 1 int
После выделения памяти под массив элементов класса Truck:
Num1 -1414812757 int

Что это? Восстание компиляторов?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//
        else if(l==2)
        {
            Truck*Ob;
            int Num1=0;
            std::cout<<"Enter num of elements in array\n";
            std::cin>>Num1;
            std::cin.get();
            Ob=new Truck[Num1];
            for(int i=0;i<Num1;++i)
                std::cin>>Ob[i];
            for(int i=0;i<Num1;++i)
                std::cin>>Ob[i];
            delete[] Ob;
        }
//
Переместил в другой проект - все заработало... Глюк студии?
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
23.07.2010, 07:29     Как такое может быть? #6
У тебя наверно режим release включен. Поставь debug.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2010, 16:25     Как такое может быть?
Еще ссылки по теме:

C++ Как такое может быть? (вызов функции-члена без объекта)
C++ Найти максимальное число которое может быть представлено как сумма степеней 2, 3 и 4 простых чисел
C++ Может ли быть такое?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.07.2010, 16:25  [ТС]     Как такое может быть? #7
Хохол, Debug был. Сто процентов. Решилось только переносом всего в другой проект
Yandex
Объявления
23.07.2010, 16:25     Как такое может быть?
Ответ Создать тему
Опции темы

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