在c语言中,char型变量占用的内存单元是1B,是不是说如果定义一个char【1024】的话,他占

在c语言中,char型变量占用的内存单元是1B,是不是说如果定义一个char【1024】的话,他占用的内存单元是不是1kb?如果定义一个相当大的字符,运行后是不是能够占用计算机很大的内存?一定程度上影响计算机速度??如果足够大能不能造成计算机内存不够而死机?如果能造成死机,这样char需要定义多少个字符??

在c语言中,char型变量占用的内存单元是1B,是不是说如果定义一个char【1024】的话,他占用的内存单元是不是1kb?

是的,占用的内存空间是1kb。

如果定义一个相当大的字符,运行后是不是能够占用计算机很大的内存?

是,会占用你所定义的大小的内存。

一定程度上影响计算机速度??如果足够大能不能造成计算机内存不够而死机?

会影响,但是如果内存并不是占用太多,影响不大,主要原因是你占用了内存,其他程序运行也需要内存时会发现内存不够而等待操作系统进行调整分配。
要让计算机因内存不够而死机,需要一定的技巧。一般操作系统都有内存管理的。追问

谢谢啦,初学者以后还请指教哈

追答

如果想要让计算机因为内存不足而变慢或死机,可以参考“内存泄露”这个知识点。就是跟操作系统申请了一块内存,但是不去注销它,操作系统就会认为该内存块正在被使用而不会当做空内存块去分配,会导致可用内存越来越少。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-21
对于变量的定义,不同的操作系统的函数栈大小是有一定限制的,不可能让你无限制的申请。
如果是在堆内存申请内存,想要系统崩掉,你可以用无线循环,申请内存试试。
第2个回答  2013-03-21
理论上讲是这样的。
但实际上,他不会让你这么做,因为数组长度已经规定了不能超过
0x7fffffff Bytes
超过,你写的代码根本就编译不通过
所以,你想的情况是不可能实现的。
第3个回答  2013-03-21
这你还要担心啊,你能用到这么大吗?再差的电脑也有好几十g的内存,够你用的追问

我想知道运算的方法。另外你说的好几十G说的是电脑的硬盘,与内存没有多大关系。况且计算机运行该程序的时候是在计算机内存中为它开辟存储区的,并不是在硬盘中

追答

唉,真的这么感兴趣就去看下内存管理的书吧!!这是操作系统的问题了,你说为啥银行看上去有花不完的钱?但实际上却是有限的,这就是因为不可能全部存钱的人在同一时间拿钱,这样无论谁都可以在任何时间问银行存取钱了,银行就看似有取不完的钱了!当然如果所有的人一起在同一时间取钱,那么银行就崩溃了!内存管理也是一样的道理!!!

相似回答