我正在经历内存泄漏 link ,但是由于幻灯片我无法理解。有人可以举例说明什么是内存泄漏吗?这是性能问题还是安全问题?
最佳答案
通常内存泄漏会导致崩溃。如果您之前从未用 C 编写过代码,请尝试一下。您将学到很多有关内存分配和访问的知识。刚开始时的有趣时光。
与某些语言相比,在 C 语言中,您必须告诉计算机您何时需要内存以及需要多少内存。然后,当您不需要该内存时,您必须告诉它。所以,如果你想要一个 8 个字符的数组,那么你必须说你想要这 8 个字符的内存。如果您忘记告诉计算机您不再需要该内存,那么它将不会被释放。这是内存泄漏。如果您经常这样做,那么您可能会耗尽内存。
int main()
{
int strLength = 10;
// Lets ask for some memory for a string
char *str = (char *)malloc(sizeof(char));
for (int i=0; i<strLength; i++)
{
str[i] = 'a' + i;
}
str[strLength-1] = 0;
// This should print "abcdefghi"
printf(str);
// We should run this to free memory: free(str);
return 0;
}
上面的代码看起来并没有那么糟糕,但是如果你在循环中执行它,那么你会很快开始使用大量内存。
至于安全性:如果泄漏发生在防火墙之类的地方,并且泄漏可导致其崩溃,那么这就是一个安全问题。
关于javascript - 'memory leak'是什么?这是性能问题还是安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744207/