我想在堆栈上创建一个 char** 字符数组。目前,我正在使用它,但我想知道是否有更好的方法:
char* buf[4];
char temp0[1024], temp1[1024], temp2[1024], temp3[1024];
buf[0] = temp0;
buf[1] = temp1;
buf[2] = temp2;
buf[3] = temp3;
编辑:为了更清楚,我不能简单地使用char buf[4][1024]
. 期望 char 指针数组的函数会崩溃,因为它是一种根本不同的数据类型。这就是我在堆上创建数组的方式:
char** buf = malloc(sizeof(char*) * 4);
for(int i = 0; i < 4; i++)
{
buf[i] = malloc(sizeof(char) * 1024);
}