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