c - 如何在C中实现变量的dup函数

标签 c pointers

我有这个:

void duplication(int **tab1, int **tab2, int n, int m)

目标是将 tab1 复制到 tab2 中,因此我将得到相同的两个表。

我该怎么做,因为我知道使用 tab2 = tab1 在我的情况下不起作用:)

抱歉,如果这是一个愚蠢的问题,我实际上正在学习 C!

谢谢。

最佳答案

假设 n 和 m 是维度,并且您知道哪一个适用于哪个维度,您需要一个像这样的双循环:

for ( int x = 0; x < n; ++x )
{
    for ( int y = 0; y < m; ++y )
    {
        tab2[x][y] = tab1[x][y];
    }
}

这是我根据您提供的函数的文档所做的一些重大假设,但希望代码能让您了解需要做什么,并且您可以在正确的位置替换正确的变量。

为了进一步引用,与这种数据复制相关的术语是所谓的“深层复制”。在处理指针时,复制指针值通常是不够的,而且通常是不安全的。如果您想了解有关此类代码的更多引用,请搜索“深层复制”

关于c - 如何在C中实现变量的dup函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527928/

相关文章:

c++ - const char* 是指向单个字符还是字符串?

c - 用 C 中的另一个矩阵滚动一个矩阵

c - 如何在64位机器下将libxml2和libcurl编译成32位?

c - 如何使用系统调用dup?

c - 如何从/dev/xxxx读取数据?

c - 为什么我可以用这个非法的C语句编译而没有任何错误?

c - 什么时候使用 const void*?

c++ - 如何在没有容器的情况下在迭代器中创建运算符->?

c - 删除第一个数字时出现段错误

c++ unique_ptr 对象的二维数组?