Результаты поиска по запросу "memory-alignment"
Нераспределенный доступ вызывает ошибку на ARM Cortex-M4
У меня есть объект, адрес которого не выровнен по 4 байта. Это вызывает ошибку HardFault в процессоре при наличии инструкции STR, сохраняющей 2 регистра. Это сгенерированный код: 00000000 <_ZN8BaseAreaC1EPcmm>: 0: b510 push {r4, lr} 2: 4604 mov ...
«Указывает на неинициализированные байты» ошибки Valgrind
Я используюValgrindдля поиска утечек памяти в моем коде, и хотя утечек памяти не обнаружено, сообщается о некоторых ошибках, все они происходят из одного метода функции / класса: ==17043== ERROR SUMMARY: 10100 errors from 3 contexts (suppressed: ...
Я редактировал вопрос. Я думаю, что теперь стало понятнее. Я не хочу делать атомарные строковые назначения. Интересно, меняет ли это выравнивание памяти.
ал статью оПрограммирование без блокировки [http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx]в MSDN. Это говорит: На всех современных процессорах можно предположить, что читает и пишет естественно выровненные нативные типы ...
@geza Это явно. Абстрактная машина не заботится о выравнивании основного HW. Если компилятор говорит, что память не выровнена, то вы получите UB независимо от HW.
ал через стандарт о неприсоединенном доступе, но ничего не нашел (возможно, я был непреднамеренным). Это неопределенное поведение? Определена ли реализация? Поскольку многие современные процессоры поддерживают не выровненный доступ, было бы ...
определяется только для CvMat, а для cv :: Mat вы должны использовать вместо этого метод
кто-нибудь, пожалуйста, объясните мне, как выравнивание строк в OpenCVCvMat (или его версия C ++cv::Mat) работает? Например, предположим, у меня есть матрица CvMat *cvmat = cvCreateMat(2,3,CV_8UC1); cvSet2D( cvmat, 0, 0, cvScalar(1) ); cvSet2D( ...
будет скомпилировано в
отрим следующую структуру: struct Vector4D { union { double components[4]; struct { double x, y, z, t; } Endpoint; }; };Мне кажется, что я видел нечто подобное в структуре IPAddress WinApi. Идея состоит в том, чтобы дать мне возможность ...
Библиотека времени выполнения C
у следующее работает, а не выбрасывает какую-то ошибку сегментации? char *path = "/usr/bin/"; char *random = "012"; // path + random + \0 // so its malloc(13), but I get 16 bytes due to memory alignment (im on 32bit) newPath = (char *) ...
Либо выделите память в куче (которая имеет гарантию выравнивания), либо используйте
я есть массив, который используется в качестве основной памяти объекта типаT: char memory[sizeof T]; . . . new(memory) T(whatever);Как я могу убедитьсяmemory выровнен правильно дляT объекты? В C ++ 0x я мог бы просто сказать: alignas(T) char ...
также в C11, а не только в C ++ 11.
предотвратить ложное совместное использование, я хочу выровнять каждый элемент массива по строке кэша. Итак, сначала мне нужно узнать размер строки кэша, чтобы я назначил каждому элементу это количество байтов. Во-вторых, я хочу, чтобы начало ...
Каков рекомендуемый способ выравнивания памяти в C ++ 11
Я работаю над реализацией кольцевого буфера для одного производителя. У меня есть два требования: 1) Выровняйте один выделенный кучи экземпляр кольцевого буфера в строке кэша. 2) Выровняйте поле в кольцевом буфере по строке кэша (чтобы ...