纯C语言中,可以使用指针来复制二维数组的行和列。下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
void copyRow(int* dest, int* src, int cols) {
for (int i = 0; i < cols; i++) {
dest[i] = src[i];
}
}
void copyColumn(int* dest, int* src, int rows, int colIndex) {
for (int i = 0; i < rows; i++) {
dest[i] = src[i * rows + colIndex];
}
}
int main() {
int rows = 3;
int cols = 4;
int originalArray[rows][cols] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int* copiedRow = malloc(cols * sizeof(int));
int* copiedColumn = malloc(rows * sizeof(int));
int rowIndex = 1;
int colIndex = 2;
copyRow(copiedRow, originalArray[rowIndex], cols);
copyColumn(copiedColumn, (int*)originalArray, rows, colIndex);
printf("Copied row: ");
for (int i = 0; i < cols; i++) {
printf("%d ", copiedRow[i]);
}
printf("\n");
printf("Copied column: ");
for (int i = 0; i < rows; i++) {
printf("%d ", copiedColumn[i]);
}
printf("\n");
free(copiedRow);
free(copiedColumn);
return 0;
}
这段代码中,我们定义了两个函数copyRow
和copyColumn
来分别复制二维数组的行和列。copyRow
函数接受目标数组指针dest
、源数组指针src
和列数cols
作为参数,通过循环遍历将源数组的每个元素复制到目标数组中。copyColumn
函数接受目标数组指针dest
、源数组指针src
、行数rows
和列索引colIndex
作为参数,通过循环遍历将源数组中指定列的元素复制到目标数组中。
在main
函数中,我们定义了一个原始的二维数组originalArray
,然后使用malloc
函数动态分配了两个一维数组copiedRow
和copiedColumn
来存储复制后的行和列。然后,我们调用copyRow
函数将指定行复制到copiedRow
数组中,调用copyColumn
函数将指定列复制到copiedColumn
数组中。最后,我们使用循环打印出复制后的行和列的元素。
这个例子展示了如何使用指针在纯C语言中复制二维数组的行和列。在实际应用中,可以根据具体需求进行相应的修改和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云