We're kind of restricting ourselves to only certain chunks of memory, at least for now, but it certainly creating problems.
我们现在我们自己只能在某一块内存中,至少是现在,当然这样也会产生问题。
So the heap is a chunk of memory in a computer's RAM that's conceptually allocated to what's called dynamic memory allocation.
堆是在计算机RAM中的一块内存,它可以进行,动态内存分配。
Well, there's a chunk of memory called the heap that you can grab as much memory as you want so long as it exists for your program.
好的,这里有一块叫做堆的内存,这样你就可以获得你想要那么多的内存,因为它为你的程序而存在。
Well, this will, in fact, be declared, but, unfortunately, you're using a different chunk of memory.
好的,这个被声明了,但是,不幸的是,你在使用一块不同的内存。
Well, if you want to call a function, it's like putting another tray on that stack of trays and that tray represents a chunk of memory that, that function can use.
嗯,如果你想调用一个函数,这就像把一个托盘放到另一个托盘上,托盘代表一块,函数可以使用的内存。
You're incrementing this chunk of memory.
你增加了这一块内存。
So A gets 1, B gets 2, now the swap function itself starts executing line by line; so I declare a chunk of memory called temp.
所以A等于1,B等于2,现在swap函数自己开始,一行一行地执行,所以我声明了,叫做temp的一块内存。
So, now I have x pointing at a chunk of memory what's in this memory though?
那么,现在x指向一块内存,内存中是什么呢?
But as soon as the most recently called function finishes executing, you have to take that tray off the stack in order to get at the previous function's memory, and once he's done executing, you have to take that one off and then what's left well then main.
但是,一旦新的调用函数结束了执行,你必须从堆中把托盘拿掉,用来获得先前函数的内存,一旦他完成执行,你必须把那一块拿下来,然后剩下的是main函数。
So, certainly the CS50 Library designed to be dynamic and, in fact, any time you call get string, we are, in fact, ; allocating a chunk of RAM but it's not coming from the stack; it's actually coming from this portion of memory called the heap.
所以,Cs50库是动态设计的,实际上,每次你调用GetSting时,我们分配一块内存,但它不是来自栈;,而是来自于叫做堆的,内存的一部分。
应用推荐