问题描述
- C语言里想要用函数创建一个新的字符数组,并使其等于原有的一个字符数组该怎么做?
-
#include
#include
#include
char map[4][4];
char creat()//创建一个新的字符数组
{
char *maze=(char)malloc(sizeof(map));
return maze;
}
void main()
{
int i,j;
for(i=0;i<4;i++)
{
gets(map[i]);
}
char *maze=creat();
strcpy(maze,map);//试图将输入的map数组赋值给新创建的字符数组
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{printf("%c",maze[i][j]);printf("n");}
}这样写的话strcpy函数会报错。然后我就不知道怎么办了。
解决方案
这不是很多笔试题有的吗?内存泄露!
解决方案二:
改:char *maze=creat();
成:char *maze = (char)malloc(strlen(map)+1);
时间: 2024-10-02 05:30:03