读书人

这段代码出现这种警告警告是什么意思,

发布时间: 2013-07-01 12:33:04 作者: rapoo

这段代码出现这种警告警告是什么意思
编译环境:Visual Studio 2008
代码:


请问这个是什么原因?

//练习代码
#include <stdio.h>
#include <string.h>
#include <malloc.h>

void main(void)
{
int i;
unsigned char a1[] = "hello";
unsigned char *pa2 = NULL;
unsigned char *p = NULL;

pa2 = (unsigned char*)malloc(sizeof(a1) * sizeof(unsigned char)); //注意看这里,如果使用strlen(a1),则会少分配一个字节
if(pa2 == NULL)
{
printf("Out Of Memory!");
}
else
{
strcpy((char*)pa2,(const char*)a1);
p = pa2;

for(i=0; i<sizeof(a1)-1; i++)
{
printf("%c",*p++);
}
printf("\n");

free(pa2);
pa2 = NULL;
}
}

读书人网 >C++

热点推荐