永发信息网

在C语言中如何把数组清空

答案:3  悬赏:50  手机版
解决时间 2021-06-02 20:28
  • 提问者网友:却不属于对方
  • 2021-06-02 14:07

例如 有一数组 a[5]={1,2,3,4,5}

如何把数组a里内容全部删除

最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-06-02 15:37
a[]="\0"
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-06-02 16:42

a[] = "\0";

必须得在一个函数中, 再者把0放在整形数组的第一个元素,一定就代表数组已删除, 因为0可能就是数组的第一个元素的有效值, 所以放0于首元素并不是一个很好的方法, 本身C语言的数组就没有自我意识,数组名本身就相当指向数组首元素的位置的常指针, 并没有带有数组大小,或最后一个位置的指针,所以我们需要一个额外的数值来记录当前静态分配数组的大小, 而且数组(静态)就是一个死的, 不能伸缩, 由于静态分配的存储空间是由系统释放的, 所以我们本身无法删除, 既然我们总是一个变量表示数组的大小, 我们就让它去跟踪数组的大小, 要删除数组就将它置为0就行了, 当然字符数组在C语言中有另处的处理, 在末尾添加一个0不代表任何字符来表示数组的结束, 所以并不需要额处的变量要记录数组的大小,当然动态分配的数组要删除数组, 只需释放内存即可, 同时将指针置为NULL即可, 在其他语言好像处理方式并不一样, 可能用第一个元素去记录数组的大小,第二个位置才存放元素, 这样数组有了自身意识,传递数组只需传递一个参数即可, PASCAL好像是这样!也没学过, 在面像对象语言中, 是通过类对数组进行抽象,解决C中数组的没有自身意识, 大小固定, 不支持对数组进行整体赋值的问题,  

  • 2楼网友:鸠书
  • 2021-06-02 16:13
请问是清零还是清除占用的内存空间?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯