C “什么是”呢;接近初始化“;?

C “什么是”呢;接近初始化“;?,c,C,在C语言中,“接近初始化”错误是什么意思 例如,以下内容将生成错误: int a[9] = {{1,2,3},{2,3,4},{3,4,5}} p、 为什么这个例子会产生错误?将my和@luk32的评论结合起来(编辑:和@hans passant) 你的错误与其说是一个错误,不如说是一个警告,说明你有潜在的问题。它靠近(如,靠近)元素a(在“near”和“initialization”之间没有连字符,因此警告靠近警告消息中提到的元素;“near initialization”表示元素几乎已初始

在C语言中,“接近初始化”错误是什么意思

例如,以下内容将生成错误:

int a[9] = {{1,2,3},{2,3,4},{3,4,5}}

p、 为什么这个例子会产生错误?

将my和@luk32的评论结合起来(编辑:和@hans passant)

你的错误与其说是一个错误,不如说是一个警告,说明你有潜在的问题。它靠近(如,靠近)元素
a
(在“near”和“initialization”之间没有连字符,因此警告靠近警告消息中提到的元素;“near initialization”表示元素几乎已初始化,但未完全初始化,这没有意义)

基本上,您有一个大小为9的一维数组。但在初始化过程中,您将其视为2D 3x3数组。虽然它们在内存中占用了相同的空间,但它们的处理方式略有不同

要解决此问题,您必须更改定义:

int a[3][3] = {{1,2,3},{2,3,4},{3,4,5}}
或初始化:

int a[9] = {1,2,3,2,3,4,3,4,5}
信息链接:


@luk32提供:

您有一个包含9个元素的数组,但您将其视为3x3数组。即使它们占用相同的内存空间,也需要更改数组定义或初始化。而且,这不是一个错误,很可能只是谷歌搜索的一个警告。真正地也可能没有连字符。您误解了编译器错误@安东想把这两条评论结合起来写一个恰当的答案吗?你是第一个解决它的=)“near”是英语中近在咫尺的意思。换句话说,“错误位于初始值设定项附近”。是的。@luk32我的谷歌搜索只花了50秒:)@Anton我仍然觉得以恰当的方式回答是值得的,你是第一位=)。谢谢Anton。你说得对,我对语法的误解加剧了我的困惑。
int a[9] = {1,2,3,2,3,4,3,4,5}