m0_62267751 2021-10-28 16:41 采纳率: 85.7%
浏览 18
已结题

C语言自己规定数组长度并输入元素 之前知道两种方法 一个是动态malloc;另一个是规定一个很长的数组 但是我没用动态也可以设置任意长度 这是为什么?


    int X;
    int a[X];
    printf("Enter the number of array:");
    scanf("%d",&X);
    for(int i=0;i<X;i++){
        printf("Enter %d value:",i);
        scanf("%d",&a[i]);
    }

这个是可以运行并且没有问题(目前没遇到)

  • 写回答

2条回答 默认 最新

  • 赵4老师 2021-10-28 18:05
    关注

    其实电脑开机后物理内存的每个字节中都有值且都是可读写的,从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页,一页通常为4KB。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解