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

Не инициализированные указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Слушание udp порта http://www.cyberforum.ru/cpp-beginners/thread1190970.html
Создаем сервер udp, слушаем порт, как можно сделать так чтобы пока я обрабатываю 1 полученный пакет, все остальные в очереди стоят, чтобы не посеять их?
C++ Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к с Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к следующему элементу, к предыдущему. http://www.cyberforum.ru/cpp-beginners/thread1190969.html
C++ Определить номера строк матрицы, содержащих хотя бы одно заданное значение, и умножить их на другое
1. Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d.
C++ Функция удаления строки из файла
Мной написана такая функция. В ней две проблемы: 1) после поиска выводится не найденное, а все, что записано 2) после удаления строки появляется строка нулей (в конце нового файла). как это...
C++ Программа вычисления простой формулы http://www.cyberforum.ru/cpp-beginners/thread1190940.html
Доброе утро, подскажите, решение. Нам ничего не объяснили, методичек не дали, сказали "загуглите". Все, что смог загуглить, видно в коде ниже. Но как видно - не сработало. ...
C++ Найти значение функции Найти значение функции y = 3x6 − 6x2 − 7 при данном значении x. подробнее

Показать сообщение отдельно
Rainy
2 / 2 / 0
Регистрация: 08.03.2014
Сообщений: 41

Не инициализированные указатели - C++

28.05.2014, 11:04. Просмотров 217. Ответов 4
Метки (Все метки)

Добрый день, пишу небольшую игру на движке, появилась проблема

main.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include “mainClass.h”
int main()
{
bool endless = true;
mainClass mainObject;
mainObject.initialize();
while(endless)
{   
    mainObject.run();
}
return 0;
}


mainClass.h
Кликните здесь для просмотра всего текста
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
#inlcude  “Enums.h”
#include “secondClass.h”
class mainClass
{
public:
mainClass() // конструктор
{
}
void Initialize()
{   
        secondObject = new secondClass[MAX] //MAX – это константа объявленная в enums.h
}
void run()
{
    for(int i = 0; i < MAX; i++)
        {
          secondObject[i].firstMetod();
        }
        …
       for(int i = 0; i < MAX; i++)
       {
          secondObject[i].secondMetod(); // ругается на этот метод
       }
}
private:
    secondClass* secondObject;
}


secondClass.h
Кликните здесь для просмотра всего текста
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
#include “Enums.h”
 
class secondClass
{
public:
secondClass() //конструктор
{
}
void firstMetod()
{
    speed = 10;
        speedPtr = &speed;
    health = 15;
        healthPtr = &health;
}
void secondMetod()
{
if(*speedPtr < 15) //конкретно ругается вот здесь, если закоментить это условие
{
    …
}
if(*healthPtr < 20) // то ошибка вылетит здесь
{
    …
}
}
private:
    int speed;
        int* speedPtr;
    int health;
        int* healthPtr;
}


Все это сильно упрощенная версия моего кода, ошибка вылетает когда доходит до проверки указателей. Ругается на ошибку доступа, я своими методами проверил эти указатели, и выяснил, что они хранят значение -8................ Т.е рандомное число
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru