gpt4 book ai didi

复制指针值

转载 作者:行者123 更新时间:2023-11-30 17:19:12 25 4
gpt4 key购买 nike

这里只是一个疑问。我有 2 个指向指针的指针.. **m1 、 **m2 和 m2 初始化为:-

m2 =( int **) calloc( 5, sizeof( int *));
for(int i=0; i<5; i++)
m2[i] = (int *)calloc( 8, sizeof(int));

指针有值......就像二维数组......在每个位置。

我可以这样做吗--

m1 = m2;
free(m2); // then use m1 as m2 ??

真的很抱歉,如果这是一个简单的问题..请问将 m2 复制到 m1 并释放 m2 的正确方法是什么。谢谢。

最佳答案

不,m1 = m2 只会使 m1 指向与 m2 相同的内存。它不会复制数组。

当您释放 m1m2 都指向的内存时,两个指针都将失效。

顺便说一句,free(m2) 只释放 int* 数组。您还需要释放 m2 中的 int 数组:

for(int i=0; i<5; i++)   
free(m2[i]);
free(m2);

关于复制指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com