声明具有空边界的数组时会发生什么

时间:2016-11-11 23:33:06

标签: c arrays pointers

例如,当您声明一个类型为int的空边界的数组时会发生什么?您的计算机如何管理分配给该特定空阵列的内存?

int A[];

1 个答案:

答案 0 :(得分:0)

在函数体内,int A[];是违反约束的行为。

在函数之外,没有初始化程序的变量定义称为暂定定义。这个定义A是未知边界int的数组。 A的类型是不完整类型,因为绑定尚未知晓。它可能会在稍后完成:

int A[];

void f()
{
     A[0] = 1;
}

int A[5];

如果省略后一个定义,则程序的行为就像源文件末尾有int A[1];一样。