将整数分配给数组导致垃圾

时间:2014-01-10 16:05:23

标签: c arrays

    for (x=1;x<4;x++)
    {
            for (y=1;y<5;y++)
            {
                    if (x==1)
                    {
                            feld[1][y] = y; 
                            printf("Feld gespeichert: %d",&feld[1][y]);             
                    }
                    else
                    {
                            feld[x][y] = 0;
                    }
            }

    }

输出结果为:

Feld gespeichert: 915094680Feld gespeichert: 915094684Feld gespeichert: 915094688Feld gespeichert: 915094692S

声明:

int main(void)
{
int x,y,groesse;
int feld[4][5]; // Initialisierung Spielfeld und Schleifenvar
(...)

我似乎无法弄明白为什么。 for循环将y递增1,而不是1.321252151252151或任何东西,无论y是整数。为什么我会得到这些奇怪的值?

1 个答案:

答案 0 :(得分:5)

您正在打印地址,而不是值。

放弃&

printf("Feld gespeichert: %d", feld[1][y]);

此外,请确保您已启用所有编译器警告,您的代码应至少产生一个警告(该地址与期望%d的{​​{1}}格式说明符不兼容)。