SSE-C++内存溢出
Memory overflow with SSE-C++
我有一个场景
int N3 =7000
temp =(int*)malloc(sizeof(int )*N3);
for(unsigned int i=0;i<N3;i++)
{
temp[i]=i;
}
temp = temp +10;
__m128i* array= reinterpret_cast<__m128i*>(temp);
int length = N3/4;
for(unsigned int i=0;i<length;i++)
{
__m128i answer= _mm_loadu_si128(&array[i]);
}
我认为这里正在发生内存溢出。我们如何避免这个错误。
执行块时:
temp = temp +10;
__m128i* sse_array = reinterpret_cast<__m128i*>(temp);
int length = N3/4;
for(unsigned int i=0;i<length;i++)
{
__m128i result = _mm_loadu_si128(&sse_array[i]);
}
你对待temp+10
就像对待temp
一样。当for
循环结束时,您访问的内存超过了10*sizeof(int)
内存位置分配的内存。
PS
在计算length
时,不要使用硬编码数字,如4
。用途:
int length = N3*sizeof(int)/size(__m128i);
相关文章:
- 将字符串存储在c++中的稳定内存中
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- Win32编译器选项和内存分配
- 当vector是tje全局变量时,c++中vector的内存管理
- gsl_complex导致内存溢出
- 哪个内存被溢出
- 缓冲区溢出到其他 exe 的内存中?还是从远程桌面程序到 csrss.exe?
- 读取虚拟内存时C++缓冲区溢出
- 内存块类在溢出后给出一个数字,为什么以及如何
- 内存将被代码中的溢出覆盖
- 如何为大型项目制作一个简单的工具来检测Linux中的双倍空闲或内存溢出
- 内存溢出?
- 内存集内存溢出
- 内存溢出的Dtrace
- SSE-C++内存溢出
- 内存溢出?std:: badalloc
- 如何避免c++中由于内存溢出而导致的错误消息
- 获得由内存泄漏引起的内存溢出,应用程序继续运行和分配
- 在试图确定是在堆栈还是堆上分配内存时,没有发生堆栈溢出
- 溢出或内存错误c++