堆分配内存实现二维字符数组后怎么做可以修改行内一个字符?
我用malloc分配内存想做一个二维字符数组,结果做出来了,但是不能修改里面一行里的一个字符,只能给一行赋值,请问怎么做可以修改其中一个字符?#include <stdio.h>
char **map(int kuan, int gao);
int main()
{
int kuan = 9;
int gao = 9;
//map是一个指向指针的指针
char **map1 = map(9, 9);
map1[0] = "c";
map1[1] = "abcdf";
printf("%s", map1[1]);
printf("\n");
printf("%c", map1[1][1]);
printf("\n");
//map1[1][0]='k';
//停止运行
//*(map1[1][0])='k';
//illegal indirection
return 0;
}
char **map(int kuan, int gao)
{
char *map =malloc(sizeof(char *) * kuan);
int i1;
int i2;
i1 = 0;
for (; i1 < kuan; i1 = i1 + 1)
{
map[i1] = malloc(sizeof(char*) * gao);
i1 = i1 + 1;
}
i1 = 0;
return map;
}