0

我将 anxn 矩阵存储在 int** matrix1 中。我有另一个 int** matrix2,其尺寸为 mxm,m > n。我想复制第二个左上角的第一个矩阵,并将缺失的位置从 n+1 填充到 m。除了逐个元素复制之外,还有其他方法吗?

4

2 回答 2

2

您可以使用

for (int i = 0; i < n; ++i)
{
  memcpy ( matrix2[i], matrix1[i], n*sizeof(int));
}

然后填写缺失的位置

于 2013-07-03T01:36:53.963 回答
2
matrix1 = (int**)malloc(sizeof(int*)*n);
matrix2 = (int**)malloc(sizeof(int*)*m);

for (int i = 0; i < n; ++i)
{
  matrix1[i] = (int*)malloc(sizeof(int*)*n);
}
for (int i = 0; i < m; ++i)
{
  matrix2[i] = (int*)malloc(sizeof(int*)*m);
}

// assigning some random values
for (int i = 0; i < n; ++i)
{
    for (int j = 0; j < n; ++j)
    {
        matrix1[i][j] = j;
    }
}

// copying elements using memcpy
for (int i = 0; i < n; ++i)
{
  memcpy ( matrix2[i], matrix1[i], n*sizeof(int));
}
于 2013-07-03T02:01:19.960 回答