我刚刚完成了一项测试,作为求职面试的一部分,一个问题让我感到难过 - 甚至使用谷歌作为参考.我想看看stackoverflow工作人员可以用它做什么:
"memset_16aligned"函数需要传递给它的16byte对齐指针,否则它将崩溃.
a)如何分配1024字节的内存,并将其与16字节边界对齐?
b)执行memset_16aligned后释放内存.
{
void *mem;
void *ptr;
// answer a) here
memset_16aligned(ptr, 0, 1024);
// answer b) here
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置着色器制服的功能,但是当我尝试编译它时,我收到此错误:
错误2错误C2719:'value':带__declspec的形式参数(align('16'))将不对齐
这是功能代码:
void Shader::setUniform(std::string name, const glm::mat4 value){
GLint uniform = glGetUniformLocation(m_program, name.c_str());
glUniformMatrix4fv(uniform, 1, GL_FALSE, (GLfloat*)&value);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Visual Studio 2013.
尝试使用对齐功能在堆上分配可移植函数.
找到"aligned_alloc",我认为这是在stdlib.h中,但gcc似乎不这么认为
错误:未在此范围内声明'aligned_alloc'
使用带有标志的gcc -std = c ++ 11 -m64
尝试导入
#include <stdlib.h>
#include <cstdlib>
Run Code Online (Sandbox Code Playgroud)