读书人

大伙儿看看这段代码为什么会产生野指针

发布时间: 2013-09-05 16:02:06 作者: rapoo

大家看看这段代码为什么会产生野指针
#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);
[解决办法]

引用:
Quote: 引用:

没有产生野指针啊


不知道是不是野指针,但是打印出来的结果不止六个数字,多出来的数字应该是野指针造成的吧,我自己猜测的


野指针:定义了一个指针类型,确没有给其确定的地址值,导致不知道它的实际地址,
指针实际指向不明确,称之为野指针(个人理解)

你那个可能是后面多余的垃圾数据而已!不是野指针!

读书人网 >C语言

热点推荐