使用GCC引发错误的NULL指针初始化数组

我正在使用GCC编译一些C代码。

#include <stdio.h>
#include <stdint.h>
#include <stddef.h>

uint8_t tab[] = NULL;

此示例代码使用GCC引发此错误:错误:无效的初始化程序

怎么了

评论
cvitae
cvitae

如果查看头文件,则可以发现实际上是NULL

#define NULL ((void*)0) // a void pointer type data.

而当您使用以下语法声明数组时

uint8_t tab[] // This is not basically a pointer | it is an array.

您正在将指针数据类型分配给问题的数组数据类型。

点赞
评论