在C语言中,要返回一个二维字符数组,可以使用指向指针的指针(char **
)作为函数的返回类型
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char **create_2d_char_array(int rows, int cols) {
char **array = (char **)malloc(rows * sizeof(char *));
for (int i = 0; i < rows; i++) {
array[i] = (char *)malloc(cols * sizeof(char));
memset(array[i], '0', cols);
}
return array;
}
void free_2d_char_array(char **array, int rows) {
for (int i = 0; i < rows; i++) {
free(array[i]);
}
free(array);
}
int main() {
int rows = 3;
int cols = 4;
char **array = create_2d_char_array(rows, cols);
// 使用二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%c ", array[i][j]);
}
printf("\n");
}
// 释放二维数组占用的内存
free_2d_char_array(array, rows);
return 0;
}
在这个示例中,我们定义了两个函数:create_2d_char_array
和 free_2d_char_array
。create_2d_char_array
函数接受行数和列数作为参数,并分配一个二维字符数组。free_2d_char_array
函数接受一个二维字符数组和行数作为参数,并释放分配的内存。
在 main
函数中,我们创建了一个 3x4 的二维字符数组,然后打印出它的内容。最后,我们释放了分配的内存。
领取专属 10元无门槛券
手把手带您无忧上云