Нужна среда для программирования пк на с++

Что-то потеряли? Заходите, будем искать, что ж поделать...
Ответить
alkis3
Прорезались зубы
Сообщения: 245
Зарегистрирован: Чт май 15, 2008 22:34:55
Контактная информация:

Нужна среда для программирования пк на с++

Сообщение alkis3 »

Всем П.
Сейчас пользуюсь builder 6 c++ ,он меня во всем устраивает,во всем кроме одного,а именно в нем невозможно создать массив большого объема.В обще возможность такая там есть,но этот массив будет находиться в ЖД,и по этому скорость работы с ним очень низкая..Мне же нужно создавать массив в оперативке объемом от 100 мегабайт,билдер позволяет максимум мегабайт 25..Как решить данную проблему в билдере и если никак ,то в какой тогда среде такое возможно ?
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение Eddy_Em »

А при чем здесь IDE?
Тупо malloc — и готово. Или что там в C++ вместо malloc юзают?
Показать пример, где malloc выделит 16ГБ в оперативе и данными их забьет (на работе 32ГБ, так что спокойно могу и больше ☺)?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
alkis3
Прорезались зубы
Сообщения: 245
Зарегистрирован: Чт май 15, 2008 22:34:55
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение alkis3 »

Пример желателен.16 мне не надо,у меня столько даже нет.Нормально 1 гиг будет.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение Eddy_Em »

https://www.cplusplus.com/reference/cstdlib/malloc/

Неужели тяжело набрать в гугле "C++ malloc example"?
Как вообще можно учить С++, не имея понятия о сишной функции malloc?

Вот, набросал сишный примерчик:

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>

#define _1G     (1024*1024*1024)
#define _1M     (1024*1024)

int main(){
    char *buf = malloc(_1G); // allocate 1GB
    for(int i = 0; i < _1G; i += _1M)
        buf[i] = '9';
    printf("Checking...\n");
    for(int i = 0; i < _1G; i += _1M)
        if(buf[i] != '9') printf("error @%d: %c\n", i, buf[i]);
    printf("Done!\n");
    return 0;
}
Усе работает, выхлоп:

Код: Выделить всё

gcc 1.c && ./a.out 
Checking...
Done!
Вложения
a.png
htop соврать не даст!
(24.41 КБ) 97 скачиваний
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
alkis3
Прорезались зубы
Сообщения: 245
Зарегистрирован: Чт май 15, 2008 22:34:55
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение alkis3 »

Не понял претензий?Вы сами сказали нужен ли пример,я ответил,зачем было спрашивать тогда показывать пример или нет?
Вообще не понял эмоций ваших,вы даете код или какое то нытье мне обязательно нужно выслушать перед этим?Если без нытья не получается общаться,не надо мне писать,я не нянька.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение Eddy_Em »

Да просто поражаюсь, до чего нынче народ ленивый пошел: вообще ни в зуб ногой, а уже хочет "программировать"…
А архитектуру ОС изучить? А понять, чем куча от стека отличается? И т.д., и т.п.
А когда нужно будет IPC, вообще будет "плач Ярославны"?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
alkis3
Прорезались зубы
Сообщения: 245
Зарегистрирован: Чт май 15, 2008 22:34:55
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение alkis3 »

Не понял зачем вы мне свое нытье изливаете?Вы чем то не довольны-я тут причем?Обратитесь к своему психоаналитику,форум про другие вопросы совсем,не про психологические.
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Нужна среда для программирования пк на с++

Сообщение a_skr »

QT позволяет, Dev-C++ позволяет

Код: Выделить всё

#include <QCoreApplication>

#define len (1024 * 1024 * 1024)
unsigned char buf[len];

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    for(int i=0; i<len; i++)
        buf[i] = i & 0xFF;

    for(int i=0; i<len; i++)
    {
        if(buf[i] != (i & 0xFF))
        {
            printf("%d failed\n", i);
            break;
        }
    }
    printf("done\n");
    return a.exec();
}
Добавлено after 14 minutes 25 seconds:
проверил в билдере, все норм

Код: Выделить всё

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

#define len (1024 * 1024 * 1024)
unsigned char *buf;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
	buf = new unsigned char[len];
	int i;
	for(i=0; i<len; i++)
		buf[i] = i & 0xFF;

	for(i=0; i<len; i++)
	{
		if(buf[i] != (i & 0xFF))
		{
			Label1->Caption = "failed";
			break;
		}
	}
	if(i == len) Label1->Caption = "done";

}
//---------------------------------------------------------------------------
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение Eddy_Em »

a_skr, выделить мегабайт на стеке? Оригинально, однако…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Нужна среда для программирования пк на с++

Сообщение a_skr »

не мегабайт, а гигабайт. и не на стеке. new - аналог malloc()
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение Eddy_Em »

a_skr, точно, гигабайт. Ну и где там new в пером примере? Вижу только попытку выделить на стеке 1ГБ. Ничего не выйдет, однако!
И да, я был про стек не прав: действительно, выделит в куче, коль оно глобальное. А вот внутри функции не проканало бы. Вот так не сработает:

Код: Выделить всё

#include <stdio.h>

#define _G (1024*1024*1024)

int main(){
    char x[_G];
    for(int i = 0; i < _G; ++i) x[i] = 12;
    for(int i = 0; i < _G; ++i){
        if(x[i] != 12) printf("oops @%d\n", i);
    }
    return 0;
}
И уж тем более — переменный размер (хоть gcc это и позволяет, но массивы переменного размера тоже выделяются на стеке!). Вот:

Код: Выделить всё

cat s.c 
#include <stdio.h>

#define _K (1024)
#define _M (1024*1024)
#define _G (1024*1024*1024)

void test(int sz){
    char x[sz];
    for(int i = 0; i < sz; ++i) x[i] = 12;
    for(int i = 0; i < sz; ++i){
        if(x[i] != 12) printf("oops @%d\n", i);
    }
}

int main(){
    test(_K);
    printf("1K done\n");
    test(_M);
    printf("1M done\n");
    test(_G);
    printf("1G done\n");
    return 0;
}

gcc s.c -o a && ./a
1K done
1M done
Ошибка сегментирования
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
alkis3
Прорезались зубы
Сообщения: 245
Зарегистрирован: Чт май 15, 2008 22:34:55
Контактная информация:

Re: Нужна среда для программирования пк на с++

Сообщение alkis3 »

a_skr Пример для билдера отлично работает!Спасибо,то что нужно.
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Нужна среда для программирования пк на с++

Сообщение a_skr »

Eddy_Em, ну кто-же такие размеры на стеке делает.. не будет же работать, и не скомпилируется :kill: :)))
Ответить

Вернуться в «Ищу...»