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

exception EEFFACE - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ указатель на двумерный массив http://www.cyberforum.ru/cpp-beginners/thread793143.html
Делая игру морской бой, я столкнулся с 1-ой проблемой: void place_ships(char &(&(map+13)+29)) //или (char **map) или (char &map) или (char &&map) и тд... { if(map==" "){map='*';} ... } ...
C++ GZip C++ Есть приложение на C# и сервер на C++. Задача: реализовать сжатие данных. Каким образом можно распаковать\запаковать данные GZip-ом на С++. Нашел такую статью... http://www.cyberforum.ru/cpp-beginners/thread793131.html
Чем можно заменить функцию setlocale(LC_ALL, "RUSSIAN")? C++
напишите пожалуйста пример!!
Выявление повторяющихся слов! C++
// 3.5.1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "DarkJoker.h" int main() { setlocale(LC_ALL, "RUSSIAN");
C++ Матрицы произвольной размерности http://www.cyberforum.ru/cpp-beginners/thread793101.html
Даны четыре вещественные матрицы произвольной размерности(размерности вводятся пользователем). Вычислить все возможные суммы, разности и произведения матриц. Не получается написать..Все время...
C++ Прога-Создание классов на Си Помогите решить прогу на Си с заданным условием : В тестовом примере создать три объекта заданного типа (для демонстрации вызова каждого конструктора). Значения для параметров конструктора с... подробнее

Показать сообщение отдельно
Алексей89
31 / 31 / 3
Регистрация: 19.02.2013
Сообщений: 118
26.02.2013, 20:42  [ТС]
Привожу проблемный блок:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.hpp>
#include <iostream.h>
#include <fstream.h>
        #include <dstring.h>
        # include <alloc.h>
        # include <stdlib.h>
#include "UnitMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TQAtab *QAtab;
 unsigned int *PResIn=0, *PResOut=0;  //Указателb на целевые массивы
 unsigned int Kcmb;
 int Kstep, cntr, Rin, Rout, CSin, CCSout;
//---------------------------------------------------------------------------
__fastcall TQAtab::TQAtab(TComponent* Owner)
        : TForm(Owner)
{
 
}
 
//---------------------------------------------------------------------------
void __fastcall TQAtab::ButtonStartClick(TObject *Sender)
{
int i, j, AddCS, Incntr;
extern int Kstep, Rin, Rout, CSin, CCSout, cntr;
extern unsigned int *PResIn, *PResOut;
extern unsigned int Kcmb;
Kcmb=EditKcmb->Text.ToInt();
Kcmb=Kcmb-1;                    //т.к. счёт идёт с 0
Kstep=EditKstep->Text.ToInt();
int t, L;
L=LogN(Rin,4294967295)+1;              
unsigned int *Rdgr32In = new unsigned int[L+1]; //Временный массив используется для наполнения целевого (большого) массива 
...
 
static unsigned int *ResIn = new unsigned int [Kcmb+1];     //Инициализация массива
PResIn=ResIn;                       //Взятие адреса целевого массива глобальным указателем *PResIn
...
delete []Rdgr32In;
...
unsigned int *Rdgr32Out = new unsigned int[L+1]; //Временный массив используется для наполнения целевого (большого) массива 
...
static unsigned int *ResOut = new unsigned int [Kcmb+1];     //Инициализация массива
PResOut=ResOut;                         //Взятие адреса целевого массива глобальным указателем *PResOut
...
}
Фактически ограничение на разных системах могут отличаться. Поэтому, самый простой способ, это не заморачиваться с описанными выше ключами, а сделать полноценное 64-битное приложение (если BCB6 позволяет это). Или отказаться от BCB6 в пользу более новых версий, а может быть даже выбрать MS VisualStudio.
Я раньше чучуть писал на фортране и на матлабе, но когда у меня встал вопрос о быстродействии, Все кто мог дать мне совет твердили "С++". Borland 6 я выбрал тоже по совету знакомого, т.к. он довольно старый и качественно взломаный, что сводит к минимуму возможность некорректной работы каких-то функций. В перспективе, конечно надо бы переходить на что-нибудь посовременнее, но сейчас мне нужно доделать программу руководителю, а большая её часть уже написана на Borland c++ 6
Эту же программу с этим же билдером я принёс к другу на Windows7x64, поставил там билдер, запустил программу и с ней произошло всё то-же что и у меня.
Я правда не знаю, то что я поставил билдер на 64-х разрядную ОС означает ли, что програма работала в режиме Win64

В любом случае проблема наверняка типичная и её наверняка решили ещё когда BCB6 был в моде.
Вот например, пока искал в гугле про ключи нашёл такой блог. Интересным мне показался Миф№4, здесь говорится о "выделении памяти без проецирования на адресное пространство" но (правда на делфи).
Здесь надо сказать, что при создании этой темы я опустил важную деталь: Размер двух целевых массивов определяется единожды, после заполнения эти массивы формально можно считать не динамическими а статическими.
Вот я и подумал, раз уж у меня проблема со 2-м массивом (а их в перспективе будет не меньше 3-х), то имеет смысл записать его в файл, а потом спроецировать его в оперативную память.

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