对同一指针重复调用

发布于 2024-12-09 11:43:05 字数 214 浏览 1 评论 0原文

当我对同一指针使用不同的连续 calloc 函数时会发生什么?

int *ptr;
ptr = (int *) calloc(X, sizeof(int));
ptr = (int *) calloc(Y, sizeof(int));
ptr = (int *) calloc(Z, sizeof(int));

其中 X、Y、Z 是三个不同的值。

What happens when I use different succesive calloc functions over the same pointer?

int *ptr;
ptr = (int *) calloc(X, sizeof(int));
ptr = (int *) calloc(Y, sizeof(int));
ptr = (int *) calloc(Z, sizeof(int));

Where X,Y,Z are three distinct values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不气馁 2024-12-16 11:43:05

您将失去与先前分配的内存的连接,并且将无法再释放它 - 内存泄漏

You will lose the connection to the previously allocated memory and you will no longer be able to free it - a memory leak

看轻我的陪伴 2024-12-16 11:43:05

如果您无法释放先前分配的内存,则会泄漏该内存。

You leak the previously allocated memory if you lose the means to free it.

肥爪爪 2024-12-16 11:43:05

当您一遍又一遍地为 int 变量赋值时,会发生同样的事情(还有内存泄漏的额外问题)

int i;
i = 42;
i = 0; // where's the 42?
i = 1; // where's the 42? and the 0?
i = 42; // where's the 42? -- Oh! I see it! :) -- and the 0? and the 1?

The same thing that happens when you assign a value to an int variable over and over again (with the extra problem of leaking memory)

int i;
i = 42;
i = 0; // where's the 42?
i = 1; // where's the 42? and the 0?
i = 42; // where's the 42? -- Oh! I see it! :) -- and the 0? and the 1?
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文