malloc程序出错

use*_*361 1 c

#include<stdio.h>
#include<stdlib.h>

// using malloc
void main(){

    int n,i;
    printf("Enter size of n \n");
    scanf("%d",&n);

    int *A = (int*)malloc( sizeof(int) * n );

/*  for(i=0;i<n;i++){
        A[i] = i+1;
    }*/

    printf("Values in Array \n");
    for(i=0;i<n;i++){
        printf("%d ",A[i]);
    }
    printf("\n");

}
Run Code Online (Sandbox Code Playgroud)

在这段代码中我必须得到输出作为垃圾值,但我得到全零为什么? (为什么我期待垃圾值是malloc默认分配是垃圾值)

抱歉英语不好......

unw*_*ind 5

没有规则将返回的内存malloc()设置为任何特定的内容,它只是未定义."所有零"肯定在"任何东西"的范围内.你不能依赖于被归零的内存,但你不能依赖于它没有被归零.