本文介绍了为什么我的数组中有未分配的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#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?

Why do I have values in the unassigned elements of 1, 4, and 6-8? I didn't assign any values. How can I make it assign automatically 0 when it's empty?

推荐答案

您没有分配它们,因此您只需要获取这些位置内存中已经存在的任何垃圾即可.

You didn't assign them, so you just get whatever rubbish was already in memory at those locations.

要零初始化,您可以执行以下操作:

To zero-initialize, you can do this:

int values[10] = {0};

或者,使用 memset .

Alternatively, use memset.

这篇关于为什么我的数组中有未分配的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 13:04