为程序分配内存是不是就是告诉CPU那块程序属于那块程序。谢各位帮助解答~
为程序分配内存后怎么让CPU知道那块内存属于那块程序。 不好意思,是我没有把问题讲清楚,我的意思是从计算机组成原理的角度来说,CPU是怎么知道那块内存是空闲的,那块是不可用的。是通过什么知道的,并不是从变量的定义的说的。
为程序分配内存是怎么回事
答案:2 悬赏:80 手机版
解决时间 2021-02-16 02:53
- 提问者网友:你挡着我发光了
- 2021-02-15 22:30
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-02-15 23:50
不是,先明白一下什么叫做内存.
内存就是存储程序以及数据的地方,比如当我们在使用WPS处理文稿时,当你在键盘上敲入字符时,它就被存入内存中,当你选择存盘时,内存中的数据才会被存入硬(磁)盘。
意思就是说,程序运行的时候,你要存贮一个数据,就需要把它放在内存中.
如果直接申请变量,如int a=3;内存是在栈中,这时候,相当于是编译器帮你自动申请了内存.
如果用 int *p=new int(3);这就相当于是自己在堆中自己申请的.它会占用内存.
上面两种情况都是占用了内存的.
/////
有一个标记,就是数组名,这就是一个标记,也是数组的首地址.
////
如果内存被占用了,CPU就没有办法去用这个内存,系统中有专门的一块标识,比如说酒店的某个房间住了人,就会在酒店的管理系统上看得出该房间有人,或者在房间的门外面注明“此房有人”。
所以c++要求我们在内存不用的时候要释放掉,这样之后,内存才能被CPU重新利用。
内存就是存储程序以及数据的地方,比如当我们在使用WPS处理文稿时,当你在键盘上敲入字符时,它就被存入内存中,当你选择存盘时,内存中的数据才会被存入硬(磁)盘。
意思就是说,程序运行的时候,你要存贮一个数据,就需要把它放在内存中.
如果直接申请变量,如int a=3;内存是在栈中,这时候,相当于是编译器帮你自动申请了内存.
如果用 int *p=new int(3);这就相当于是自己在堆中自己申请的.它会占用内存.
上面两种情况都是占用了内存的.
/////
有一个标记,就是数组名,这就是一个标记,也是数组的首地址.
////
如果内存被占用了,CPU就没有办法去用这个内存,系统中有专门的一块标识,比如说酒店的某个房间住了人,就会在酒店的管理系统上看得出该房间有人,或者在房间的门外面注明“此房有人”。
所以c++要求我们在内存不用的时候要释放掉,这样之后,内存才能被CPU重新利用。
全部回答
- 1楼网友:一叶十三刺
- 2021-02-16 00:29
分配内存失败,是个编程里的东东啊.
程序必须要从硬盘读到内存里才可以执行.而程序执行时需要的数据也要占内存里的一些区域.
然后就出来个分配内存的概念,就是系统给程序(如project64)专门分出一些内存中指定的区域来.而程序执行时也要给它需要处理的数据在内存里划出一块区域来.
现在系统都支持虚拟内存,内存空间可以看成是无穷大的.足够用的.
因为我没用过project64,只能推测如下:
project64可能是个大程序,需要在实际内存里划出很大一块,但你的实际内存不够了.所以分配不下内存了.如果这种情况,可以考虑加条内存,或者运行project64时把其他运行的程序都关了,留给project64.
不知道project64可不可以设置占用的内存空间大小呢?
内存条接触不良或者质量不太过关.分配的时候出错了.这种情况可能性不大.一般还会伴随系统的不稳定.经常蓝屏重起之类.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯