char ch[N] ;中数组个数N必须是正整数常量;
所以,当数组个数为变量的时候,就无法使用这种方法定义;
此时就需要申请动态数组
void* func(int N)
{
char *str = (char*)malloc(N*sizeof(char));
return str;
}
此外,申请动态内存的优点还有:
当函数的返回值为指针的时候,倘若指针指向的是局部变量:
void* func(int N)
{
char ch[6]="hello";
char *str = ch;
return str;
}
因为是ch[6]为存储的是局部变量,当返回指针str时,函数外,该变量生命周期结束,所以要使用动态数组。
本文详细解释了在C语言中为何及如何使用动态数组。当数组大小未知或变化时,固定大小的数组不再适用,此时动态数组成为必要选择。文章通过实例展示了局部变量的生命周期限制,并介绍了使用malloc进行动态内存分配的方法。

364

被折叠的 条评论
为什么被折叠?



