使用VS2010编译C源码的时候碰到了这个问题, 据说C++ 不会有问题, 还没验证过.
出错代码:
int main()
{
char *str_num = "20171023";
int width = 176;
int height = 144;
int len = width*height*3/2;
FILE *fp = fopen("E://c.yuv","wb");
if (fp == NULL)
{
printf("fp null\n");
return 0;
}
unsigned char *pddata = (unsigned char*)malloc(len);
/*...为了方便看,这一部分省略了...*/
}
报错的是第15行, 试了赋值和声明分开, 也不行.
解决方法:
把pddata的声明放在main()最开始, 问题消失. 如下:
int main()
{
unsigned char *pddata = NULL;
char *str_num = "20171023";
int width = 176;
int height = 144;
int len = width*height*3/2;
FILE *fp = fopen("E://c.yuv","wb");
if (fp == NULL)
{
printf("fp null\n");
return 0;
}
pddata = (unsigned char*)malloc(len);
/*...为了方便看,这一部分省略了...*/
}