Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is "near-initialization"?

Tags:

c

In C, what does a "near-initialization" error mean?

For instance, the following will generate the error:

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

p.s Why does this example generate the error?

like image 801
captaincurrie Avatar asked May 01 '14 19:05

captaincurrie


1 Answers

To combine my and @luk32's comments (edit: and @hans-passant).

Your error isn't so much an error, as it is a warning that you have a potential problem. It is near (as in, close by) the element a (there is no hyphen betyween "near" and "initialization", so the warning is near the element mentionned in the warning message; a "near-initialization" would mean that the element was almost but not quite initialised, which makes no sense).

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

Basically, you have a 1D array of size 9. But in your initialisation, you are treating it like a 2D 3x3 array. While they take up the same amount of space in memory, they are treated a little differently.

To resolve the problem, you would have to either change the definition:

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

Or the initialisation:

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

Informational link:

Provided by @luk32: http://www.microchip.com/forums/m463491.aspx

like image 124
AntonH Avatar answered Sep 28 '22 01:09

AntonH