大家看看这段代码为什么会产生野指针
#include <stdio.h>
#include <string.h>
char* screen_on(char* returnBuff)
{
int i;
char buff[6] = {0xA0, 0xA1, 0x1D, 0xD1, 0xC1, 0xD2};
strcpy(returnBuff, buff);
return returnBuff;
}
int main()
{
int i;
char buff[128] = {0};
screen_on(buff);
for(i = 0; i < sizeof(buff)/ sizeof(char); i++)
{
printf("%d ", buff[i]);
}
printf("\n");
return 0;
}
[解决办法]
没有产生野指针啊
[解决办法]
strcpy(returnBuff, buff);
改为:
strncpy(returnBuff, buff, 6);
[解决办法]
野指针:定义了一个指针类型,确没有给其确定的地址值,导致不知道它的实际地址,
指针实际指向不明确,称之为野指针(个人理解)
你那个可能是后面多余的垃圾数据而已!不是野指针!