这个C代码有漏洞吗?
虽然答案是正确的,但只是想知道这样写是否可以:
// _mm_adds_epi16 : Adds the 8 signed 16-bit integers in a to the 8 signed
//16-bit integers in b and saturates
__m128i t7=_mm_adds_epi16( t5 ,t6 );
unsigned short *p= (unsigned short *)malloc(8);
p=(unsigned short *)&t7;
for(int i=0;i<8;i++)
{
printf("%d\n", p[i]);
}
已更新
所以现在我更新如下:
// _mm_adds_epi16 : Adds the 8 signed 16-bit integers in a to the 8 signed
//16-bit integers in b and saturates
__m128i t7=_mm_adds_epi16( t5 ,t6 );
unsigned short *p= (unsigned short *)malloc(8);
p=(unsigned short *)&t7;
for(int i=0;i<8;i++)
{
printf("%d\n", p[i]);
}
free(p);
我还有漏气吗?
打印t7的正确方法是什么
最佳答案
是的,有泄漏。您立即覆盖存储动态分配内存地址的指针。这样就无法再访问该内存。
关于c - 这段 C 代码有漏洞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065921/