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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…