• Как правильно реализовать структуру данных для упаковки многомерного(кол-во измерений не известно сразу)массива в JSON / любой другой формат данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если размерности известны. Например 120 на 30 на 200 на 40 то такой гипер-кубик
    можно упаковать в обычный линейный массив. И он будет по длине равен 28800000 элементов.
    Таким образом любой многомерный массив укладывается в одномерный.
    Формула доступа будет достаточно простая. Почти тоже что и для матрицы.

    Тоесть задача хранения - решена.
    Ответ написан
    9 комментариев
  • Как правильно сделать граф?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    как сделать поиск по кругу на N радиус от ячейки 2мерного массива
    а это не о графах вообще..
    покури tarantul что ли?
    .. а так, это мне напоминает курс функционального анализа.. о функциональных пространствах.. и о том, что любое "пространство" задается метрикой расстояния на этом пространстве..
    .. в тарантуле вроде заложили основы геометрик.. поможет ли тебе - не знаю..
    но граф это не место быстрого доступа.. ну или только реальных соседей..
    Ответ написан
    7 комментариев
  • Скомпилированный в GCC exe файл вылетает досрочно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Но в режиме отладки всё, как я уже писал выше, работает.

    Да не, это только видимость. Смотри:

    $ gcc -std=c99 -O2 -g3 -fsanitize=address main.c acp.c md5.c -o main
    $ ./main
    Base64('Hello') = "SGVsbG8="
    MD5('Hello') = "8b1a9953c4611296a827abf8c47804d7"
    =================================================================
    ==1045705==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x604000000071 at pc 0x7fb0d46486f8 bp 0x7ffd0affb580 sp 0x7ffd0affad30
    WRITE of size 33 at 0x604000000071 thread T0
        #0 0x7fb0d46486f7 in __interceptor_strcat ../../../../src/libsanitizer/asan/asan_interceptors.cpp:377
        #1 0x564b2388c0de in prepareKeys /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/acp.c:263
        #2 0x564b2388cac4 in acraw /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/acp.c:319
        #3 0x564b2388d8c2 in acraws /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/acp.c:401
        #4 0x564b2388d8c2 in acraws_basic /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/acp.c:409
        #5 0x564b2388a62e in testSimpleEncryption /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/main.c:20
        #6 0x564b2388a368 in main /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/main.c:111
        #7 0x7fb0d44461c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
        #8 0x7fb0d4446284 in __libc_start_main_impl ../csu/libc-start.c:360
        #9 0x564b2388a440 in _start (/home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/main+0x3440)
    
    0x604000000071 is located 0 bytes to the right of 33-byte region [0x604000000050,0x604000000071)
    allocated by thread T0 here:
        #0 0x7fb0d46b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
        #1 0x564b2388fee7 in md5StringHash /home/jcmvbkbc/tmp/toster/1331202/alphacrypt2/md5.c:227
    Ответ написан
  • Что делать, если программа не видит библиотеку iostream?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Понять, что C и C++ - это два разных языка, и либо использовать C++, либо не использовать iostream.
    Ответ написан
    Комментировать
  • Как виртуальные машины исполняют код и как правильно это реализовать?

    @vadimr
    Ну это нормальный известный вариант – хранить представление кода в тетрадах. В основном, правда, так делают в компиляторах на промежуточном этапе, а не в виртуальных машинах, так как трёхадресная структура команды приводит к лишним издержкам на декодирование и обращение к оперативной памяти. Но для демонстрации технологии потянет. Вы же не собираетесь, наверное, ставить рекорды производительности.

    с одной особенностью ввиде того что можно создать несколько одинаковых по номеру переменных но с разным значение,но чтение/изменение видит только первую из них


    Это размещение в памяти типа controlled, практиковалось в качестве возможного варианта в языке PL/I.
    Ответ написан
    1 комментарий