Форум программистов, компьютерный форум CyberForum.ru

Выравнивание при динамическом выделении памяти под массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Новые новины из С++11 http://www.cyberforum.ru/cpp-beginners/thread922248.html
ну может для кого не новые, для меня новые что за auto что оно делает? как оно так может auto& x: myvector? и вуаля! мне недавно подсказали что auto il = {1,2,3}; Будет иметь тип initializer_list в любом случае. Так что за чудесные свойства auto #include <iostream> #include <vector> int main () {
C++ Ошибка С4700 #include <conio.h> #include <math.h> #include <iostream> using namespace std; double f(double x) { return (2*x)-(3*log(x))-3; http://www.cyberforum.ru/cpp-beginners/thread922245.html
C++ В чем причина
В общем сам код: #include<iostream> using namespace std; int b=20; int *a = &b; int main() {
Наследование и шаблоны C++
Почему при использовании шаблонов при обращении к элементам класса нужно явно указывать потомка или this? Ведь при наследовании без шаблонов этого делать не надо. template <int T> struct a { int value; }; template <int T> struct b : a<T> {
C++ Логическое выражение http://www.cyberforum.ru/cpp-beginners/thread922179.html
Здравствуйте. Запишите логическое выражение, которое принимает значение "истина" тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной области. Подскажите как правильно описать область на рисунке. У меня описано так, но это неправильно? if ( ( y >= 1 - x ) && ( y >= 0.5 - x ) ) printf ( "\n%s", " Попал " ); else printf ( "\n%s", " Не попал " );
C++ Массив с неизвестным заранее количеством элементов Задача: Создать программу, которая позволит ввести неограниченное количество значений и сохранит их в массиве. #include <iostream> using std::cin; using std::cout; using std::endl; int main() { подробнее

Показать сообщение отдельно
nonedark2008
623 / 501 / 92
Регистрация: 28.07.2012
Сообщений: 1,338
27.09.2016, 19:42     Выравнивание при динамическом выделении памяти под массив
Цитата Сообщение от Sayberix Посмотреть сообщение
он кратен степени двойки... Так что 1 тут не катит.
http://www.cyberforum.ru/cgi-bin/latex.cgi?1=2^0
Цитата Сообщение от Sayberix Посмотреть сообщение
Мне интересен сам подход
Все зависит от компилятора и процессора.
Зачастую процессор читает блоками, выровненными по границе 32 байта (Это не всегда так). Если данные не выровнены по границе 32 байта, то читать приходится несколько раз (т.к. полезные данные попадают сразу в два блока). У процессора даже есть отдельные наборы инструкций для работы с выровненными данными и нет. Решение какой набор использовать либо принимает компилятор самостоятельно (если ты ему подашь информацию о том, какие данные у тебя выровнены, а какие нет), либо ты жестко их определяешь (Для этого обычно используют интринсики).

Собственно, где определенно важно выравнивание, так это в операциях SIMD.
 
Текущее время: 04:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru