Форум РадиоКот https://radiokot.ru/forum/ |
|
Нужна среда для программирования пк на с++ https://radiokot.ru/forum/viewtopic.php?f=29&t=175635 |
Страница 1 из 1 |
Автор: | alkis3 [ Чт фев 18, 2021 20:09:40 ] |
Заголовок сообщения: | Нужна среда для программирования пк на с++ |
Всем П. Сейчас пользуюсь builder 6 c++ ,он меня во всем устраивает,во всем кроме одного,а именно в нем невозможно создать массив большого объема.В обще возможность такая там есть,но этот массив будет находиться в ЖД,и по этому скорость работы с ним очень низкая..Мне же нужно создавать массив в оперативке объемом от 100 мегабайт,билдер позволяет максимум мегабайт 25..Как решить данную проблему в билдере и если никак ,то в какой тогда среде такое возможно ? |
Автор: | Eddy_Em [ Чт фев 18, 2021 20:11:21 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
А при чем здесь IDE? Тупо malloc — и готово. Или что там в C++ вместо malloc юзают? Показать пример, где malloc выделит 16ГБ в оперативе и данными их забьет (на работе 32ГБ, так что спокойно могу и больше ☺)? |
Автор: | alkis3 [ Чт фев 18, 2021 20:43:50 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
Пример желателен.16 мне не надо,у меня столько даже нет.Нормально 1 гиг будет. |
Автор: | Eddy_Em [ Чт фев 18, 2021 22:44:23 ] | ||
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ | ||
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!
|
Автор: | alkis3 [ Пт фев 19, 2021 00:24:16 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
Не понял претензий?Вы сами сказали нужен ли пример,я ответил,зачем было спрашивать тогда показывать пример или нет? Вообще не понял эмоций ваших,вы даете код или какое то нытье мне обязательно нужно выслушать перед этим?Если без нытья не получается общаться,не надо мне писать,я не нянька. |
Автор: | Eddy_Em [ Пт фев 19, 2021 00:51:38 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
Да просто поражаюсь, до чего нынче народ ленивый пошел: вообще ни в зуб ногой, а уже хочет "программировать"… А архитектуру ОС изучить? А понять, чем куча от стека отличается? И т.д., и т.п. А когда нужно будет IPC, вообще будет "плач Ярославны"? |
Автор: | alkis3 [ Пт фев 19, 2021 05:37:10 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
Не понял зачем вы мне свое нытье изливаете?Вы чем то не довольны-я тут причем?Обратитесь к своему психоаналитику,форум про другие вопросы совсем,не про психологические. |
Автор: | a_skr [ Пт фев 19, 2021 11:49:01 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
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 [ Пт фев 19, 2021 12:38:56 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
a_skr, выделить мегабайт на стеке? Оригинально, однако… |
Автор: | a_skr [ Пт фев 19, 2021 13:14:20 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
не мегабайт, а гигабайт. и не на стеке. new - аналог malloc() |
Автор: | Eddy_Em [ Пт фев 19, 2021 14:26:07 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
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 Ошибка сегментирования |
Автор: | alkis3 [ Пт фев 19, 2021 20:13:00 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
a_skr Пример для билдера отлично работает!Спасибо,то что нужно. |
Автор: | a_skr [ Ср фев 24, 2021 08:43:08 ] |
Заголовок сообщения: | Re: Нужна среда для программирования пк на с++ |
Eddy_Em, ну кто-же такие размеры на стеке делает.. не будет же работать, и не скомпилируется ![]() ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |