WEB开发网
开发学院软件开发VC 初学者指针指南 阅读

初学者指针指南

 2006-04-11 22:54:17 来源:WEB开发网   
核心提示: 来得明白,去得明白还有一个复杂的因素,初学者指针指南(4),并且是十分严重的——虽然它很好补救,问题是你分配的内存在离开的时候虽然仍然完好,只好按字面翻译了),如果我们要编写一段程序,但是这段内存永远也不会自动销毁,这就是说

来得明白,去得明白

还有一个复杂的因素,并且是十分严重的——虽然它很好补救。问题是你分配的内存在离开的时候虽然仍然完好,但是这段内存永远也不会自动销毁。这就是说,如果你不通知电脑结束使用的话,这段内存就会一直存在下去,这样做的结果就是内存的浪费。最终,系统就会因为内存耗尽而崩溃。所以,这是相当重要的一个问题。当你使用完内存之后,释放它的代码非常简单:

delete pPointer;

这一切就这么简单。不管怎样,在你传递一个有效的指针——亦即一个指向一段你已经分配好的内存指针,而不是那些老旧的垃圾内存——的时候,你都需要无比细心。尝试delete一段已经释放的内存是十分危险的,这可能会导致你的程序崩溃。

好了,下面又是那个例子,这一次它就不会浪费内存了:

#include <stdio.h>
int *pPointer;
void SomeFunction()
{
  // 使pPointer指向一个new的整数
  pPointer = new int;
  *pPointer = 25;
}
void main()
{
  SomeFunction(); // 让pPointer指向某些东西
  printf("Value of *pPointer: %d\n", *pPointer);
  delete pPointer;
}

唯一的一行不同也就是最本质的一点。如果你不将内存delete掉,你的程序就会得到一个“内存泄漏”。如果出现了内存泄漏,那么除非你关闭应用程序,否则你将无法重新使用这段泄漏的内存。

向函数传递指针

向函数传递指针的技术非常有用,但是它很容易掌握(译注:这里存在必然的转折关系吗?呃,我看不出来,但是既然作者这么写了,我又无法找出一个合适的关联词,只好按字面翻译了)。如果我们要编写一段程序,在其中要把一个数增加5,我们可能会像这么写:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:初学者 指针 指南

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接