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 是一个整数。为什么我会得到这些奇怪的值?
最佳答案
您正在打印地址,而不是值。
删除&
:
printf("Feld gespeichert: %d", feld[1][y]);
此外,请确保您已启用所有编译器警告,您的代码应该至少产生一个警告(该地址与需要 int< 的
)。%d
格式说明符不兼容
关于c - 将整数分配给数组会导致垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048908/