c - 将整数分配给数组会导致垃圾

标签 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 是一个整数。为什么我会得到这些奇怪的值?

最佳答案

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

删除&:

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

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

关于c - 将整数分配给数组会导致垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048908/

相关文章:

java - 有人可以解释为什么对我的数组进行这些特定更改可以修复我的错误吗?

ios - 如何将数字数组减少为具有给定长度且信息丢失少的数组

c - 查询结构的多维映射的设计,该结构的数据在 C 中的某些源代码文件中隐藏

c - 如何读取 C 中以空格分隔的 0-9 数字?

c - C 编程中的真或假条件

Python 在 Ruby 中的枚举?

c - 不理解自定义 C shell 的逻辑

javascript - 用 php 变量填充一个 javascript 数组

c - 这段代码打印范围内的素数有什么问题

c - 批准的原始指针操作语法