在C语言中,二级指针常常被用于处理字符串数组。下面是一个例子,说明了如何使用二级指针来创建一个字符串数组,并填充它:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
// 定义一个二级指针,用于存储字符串数组(字符串指针的数组)
char **array;
int i, j;
int size = 5; // 设定字符串数组的大小为5
// 为二级指针分配内存,也就是为字符串指针的数组分配内存
array = (char **)malloc(size * sizeof(char *));
if (array == NULL) {
printf("Memory allocation failed!
");
return 1;
}
// 为每个字符串分配内存
sizeof 指针for (i = 0; i < size; i++) {
array[i] = (char *)malloc(50 * sizeof(char)); // 分配足够的空间来存储一个50字符的字符串
if (array[i] == NULL) {
printf("Memory allocation failed!
");
return 1;
}
}
// 填充字符串数组
for (i = 0; i < size; i++) {
sprintf(array[i], "String #%d", i); // 使用sprintf函数将格式化的字符串写入到每个字符串中
}
// 打印字符串数组的内容
for (i = 0; i < size; i++) {
printf("%s
", array[i]);
}
// 释放内存
for (i = 0; i < size; i++) {
free(array[i]); // 先释放每个字符串的内存,然后再释放整个二级指针的内存
}
free(array);
return 0;
}
这个程序首先定义了一个二级指针array,然后为它分配了内存,接着为每个字符串分配了内存,然后填充了每个字符串,最后释放了分配的内存。这个程序创建了一个包含5个字符
串的字符串数组,每个字符串都包含一个格式化的消息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。