Я смотрю на объяснение выровненных-Alloc():. http://en.cppreference.com/w/c/memory/aligned_allocтребования функции aligned_alloc
void *aligned_alloc(size_t alignment, size_t size);
«Выделяют размер байт неинициализированного хранения которого выравнивание задается выравнивание Параметр размера должен быть составной кратное выравниванию ".
Однако пример кода использует его как это:
int *p2 = aligned_alloc(1024, 10*sizeof *p2);
10 * SizeOf * р = 40, так что это не кратен 1024.
Что я неправильно?
Я думаю, что опечатка: возможно, она также имела значение «24», как в 'int * p2 = aligned_alloc (1024, 1024 * sizeof * p2);' или 'int * p2 = aligned_alloc (10, 10 * sizeof * p2); '? Конечно, размер 'int' _could_ должен составлять 2,560, но я в этом сомневаюсь. – chux
Возможно, это была опечатка, но код компилируется и работает нормально, как есть. Я использую GCC 4.9. – MichaelSB
Для чего стоит, cppreference dot com, как правило, очень плохой источник информации о C++ и еще хуже для информации о C. Это больше похоже на чей-то неточный пересказ того, что говорят языки, а не на объяснение и разъяснение их требований. –