c - 为什么我的数组中有我没有分配的值?

标签 c arrays

#include <stdio.h>

int main(void)
{

    int values[10];
    int index;

    values[0] = 197;
    values[2] = -100;
    values[5] = 350;
    values[3] = values[0]+values[5];
    values[9] = 
    values[5] / 10;
    --values[2];

    for (index = 0; index < 10; index++)
        printf ("values[%i] = %i\n", index, values[index]);

    return 0;
}

为什么我在1、4和6-8的未赋值元素中有值?我没有分配任何值。如何让它在为空时自动赋值为 0?

最佳答案

你没有分配它们,所以你只是得到那些已经在内存中的垃圾。

要进行零初始化,您可以这样做:

int values[10] = {0};

或者,使用 memset .

关于c - 为什么我的数组中有我没有分配的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115578/

相关文章:

c - 错误 C2143 : syntax error: missing ';' before '{' in C

c - 结构体中数组的内存分配

php - 无法在 PHP 中比较 2 个数组(不区分大小写)

java - 用随机数填充 double 组,然后打印该数组中的偶数和奇数

计算C中未定义的字符数组的索引#

javascript - 从数字输入计算最佳拟合

c - 启动流程并始终设置流程 HWND 维度

c - 这个美元符号在 __asm 中是什么意思?

c - 为什么我的可变参数在 C 中不起作用?

C 三维数组初始化