下面的程序片段有什么重大的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行正确。

被折叠的 条评论
为什么被折叠?



