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

Ошибка на стадии выполнения ptr = ptr; - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как поменять значение регистра? http://www.cyberforum.ru/cpp-beginners/thread928659.html
У меня есть регистр, который определяет место, в котором программа останавливается перед заходом в функцию. Мне нужно шагнуть на следующее место, где эта функция вычисляется. ADDRINT InstPtr = (ADDRINT)PIN_GetContextReg( ctxt, REG_INST_PTR ); ADDRINT NewInstPtr = InstPtr + 1; Вторая строчка написана не правильно, но как шагнуть на это значение регистра, я не знаю.
C++ W8054 Style of function definition is now obsolete При выполнении кода возникает предупреждение, о том, что я использую старый стиль объявления функций. Раньше таких предупреждений не получал. Здесь точно в стиле проблема? Предупреждение: W8054 Style of function definition is now obsolete //--------------------------------------------------------------------------- #include <vcl.h> #include <iostream> #pragma hdrstop ... http://www.cyberforum.ru/cpp-beginners/thread928629.html
Что принимает какие значения? C++
pNew->pPrev=pLast pNew->pNext=NULL pFirst=pFirst->pNext помогите разобратся пожайлуста, что принимает какие значения, а то я что-то не совсем понял с этими стрелочками когда их надо ставить, к примеру первая строчка, это New записываем в Prev и делаем его Last или как? или третья строка тоже несовсем понятна, подскажите пожайлуста или вот pNew->val=val что куда переходить или как тут вопще?
C++ Вычислить сумму ряда
По заданным числам n и a вычислить значение суммы: \sum_{i=1}^{n}i*a^i #include <iostream> #include <cmath> #define ll long long inline ll binpow(ll x, ll n) { ll res = 1; while (n) {
C++ Возведение в степень, отрицательные числа http://www.cyberforum.ru/cpp-beginners/thread928607.html
В библиотеке <cmath> есть такая функция pow(A,B) - получаешь результат возведения A в степень B Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно, 1. -2 в 2 степени, на яндексе показывает что должно быть -4, обычный калькулятор показывает -4, pow(A,B) из <cmath> показывает 4, мой pow тоже показывает 4 2. -2 в 3 степени, везде...
C++ вывод генерированных чисел помогите с программой. Суть в том что нужно посчитать числа по формулам и получить примерно такой результат.. подробнее

Показать сообщение отдельно
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314

Ошибка на стадии выполнения ptr = ptr; - C++

25.07.2013, 16:50. Просмотров 1077. Ответов 25
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CObject
{
friend Parser;
// много полей методов, все должны заполняться в парсере
}
 
class Parser
{
CObject * object_
public:
    void CParser::LoadFromEcad(CObject * object, const std::wstring & path)
    {
        object_ = object; //  Тут происходит ошибка
    }
}
C++
1
2
3
4
5
6
7
Foo * soldat;
int main()
{
   CParser * parser = new CParser;
   CObject * object = new CObject;
   parser->LoadFromEcad(object,L"blabla.ecad");
}
Сообщение об ошибке:
Кликните здесь для просмотра всего текста
Unhandled exception at 0x777415de in ecad.exe 0xC00000005: Access violation writing location 0x0000004.

Заголовочный файл парсера и код вызываемой функции:
Кликните здесь для просмотра всего текста

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
49
50
51
52
53
#pragma once
#pragma comment( lib, "shlwapi.lib" )
 
#include <Windows.h>
#include <Shlwapi.h>
#include <io.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
#include <string>
#include "userfn.h"
#include "usertypes.h"
#include "engine/Object.h"
 
class CParser
{
    CObject * object_;
    static std::wstring type_parsing[7];
public:
    void LoadFromEcad(CObject * object, const std::wstring & path);
private:
    bool IsFileExist(const std::wstring & file_path);
    void IndexParse(std::ifstream & file_stream, std::string & tmp);
    void VertexParse(std::ifstream & file_stream, std::string & tmp);
    void DiffuseParse(std::ifstream & file_stream, std::string & tmp);
    void AmbientParse(std::ifstream & file_stream, std::string & tmp);
    
};
void CParser::LoadFromEcad(CObject * object, const std::wstring & path )
{
    if (IsFileExist(path))
    {
        object_ = object; // ВОТ ОНА ОШИБКА
        std::ifstream file_stream( path.c_str() );
        std::string tmp;
        file_stream >> tmp;
        if ( tmp == "START" )
            while (tmp != "END")
            {
                file_stream >> tmp;
                VertexParse(file_stream,tmp);
                IndexParse(file_stream,tmp);
                DiffuseParse(file_stream,tmp);
                AmbientParse(file_stream,tmp);
            }
        file_stream.close();
    }
    else
    {
        // InitEmptyObject();
    }
}

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