从C语言中的函数内部分配字符串数组,可以使用动态内存分配函数malloc()
或calloc()
。以下是一个简单的示例:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
char** allocate_string_array(int rows, int cols) {
char** array = (char**)malloc(rows * sizeof(char*));
for (int i = 0; i< rows; i++) {
array[i] = (char*)calloc(cols, sizeof(char));
}
return array;
}
void free_string_array(char** array, int rows) {
for (int i = 0; i< rows; i++) {
free(array[i]);
}
free(array);
}
int main() {
int rows = 3;
int cols = 10;
char** string_array = allocate_string_array(rows, cols);
// 使用分配的字符串数组
strcpy(string_array[0], "Hello");
strcpy(string_array[1], "World");
strcpy(string_array[2], "C语言");
// 输出字符串数组
for (int i = 0; i< rows; i++) {
printf("%s\n", string_array[i]);
}
// 释放分配的内存
free_string_array(string_array, rows);
return 0;
}
在这个示例中,我们定义了两个函数:allocate_string_array()
和free_string_array()
。allocate_string_array()
函数接受两个参数:行数和列数,并返回一个指向字符串数组的指针。free_string_array()
函数接受一个指向字符串数组的指针和行数,并释放分配的内存。
在main()
函数中,我们使用allocate_string_array()
函数分配一个字符串数组,并将一些字符串复制到数组中。然后,我们输出数组中的字符串,最后使用free_string_array()
函数释放分配的内存。
领取专属 10元无门槛券
手把手带您无忧上云