1:分配一个二维字符串数组
使用malloc分配一个二维数组来保存字符串。但是在free过程中会遇到各种问题。
#include <stdio.h>
#include <stdlib.h>
#define M 10
#define n 10
int main() {
char **a = (char **)malloc(sizeof(char *) * M); //指针的数组
int i;
a[0] = (char *)malloc(sizeof(char) * M * n);
for (i = 1; i < M; i++) {
a[i] = a[i - 1] + n;
}
for (int i = 0; i < M; i++) {
a[i] = "hello";
printf("%s\n", a[i]);
}
printf("%d\n", sizeof(a)); // 4*M,指针数组
printf("%d\n", sizeof(a[0])); // 4,指针
printf("%x,%x\n", &a[0], &a[1]);
// free(a[0]);
free(a);
free(a[0]);
}