下面的程序片段有什么重大的bug?
short *bufptr;
short bufarray[20];
short var = 0x20;
*bufptr = var;
bufarray[0] = var;
代码第1,2,3行都正确,没有毛病;
但代码第4行错误,它将bufptr指针指向的内容赋为var变量的值。因为bufptr没有被初始化,是个“野指针”,所以对它所指向的内容操作是十分危险的,会导致程序崩溃,为了杜绝这种错误,可以将bufptr正确地进行初始化。代码第1行改为:
short bufptr = (short)malloc(sizeof(short));
代码第5行正确。
野指针的危害
最新推荐文章于 2025-02-14 15:17:09 发布