。
在C语言中,可以使用动态内存分配来实现分配和返回二维数组指针,其中行和列是运行时参数。下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
// 函数原型:分配并返回二维数组指针
int** allocateArray(int rows, int cols) {
int** arr = (int**)malloc(rows * sizeof(int*)); // 分配行指针数组
for (int i = 0; i < rows; i++) {
arr[i] = (int*)malloc(cols * sizeof(int)); // 分配每行的列空间
}
return arr;
}
// 函数原型:释放二维数组内存
void freeArray(int** arr, int rows) {
for (int i = 0; i < rows; i++) {
free(arr[i]); // 释放每行的列空间
}
free(arr); // 释放行指针数组
}
int main() {
int rows, cols;
printf("请输入二维数组的行数和列数:");
scanf("%d %d", &rows, &cols);
// 分配二维数组内存
int** arr = allocateArray(rows, cols);
// 对二维数组赋值
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 打印二维数组
printf("二维数组的内容为:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 释放二维数组内存
freeArray(arr, rows);
return 0;
}
上述代码中,allocateArray
函数用于分配并返回二维数组指针,参数rows
和cols
表示行数和列数。首先,使用malloc
函数分配一个行指针数组,长度为rows
。然后,使用循环为每一行分配列空间,长度为cols
。最后,返回分配好的二维数组指针。
freeArray
函数用于释放二维数组内存,参数arr
为二维数组指针,rows
为行数。首先,使用循环释放每一行的列空间。然后,释放行指针数组的内存。
在main
函数中,首先获取用户输入的行数和列数。然后,调用allocateArray
函数分配二维数组内存,并对其进行赋值。最后,打印二维数组的内容。最后,调用freeArray
函数释放二维数组内存。
这样,就实现了分配和返回二维数组指针,其中行和列是运行时参数的功能。
关于腾讯云相关产品,可以参考以下链接:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云