在C语言程序中,指针数组可以用malloc函数生成吗?

2020-06-20 教育 121阅读
可以的,任何存储空间,均可以通过malloc函数生成。指针数组也不例外。
以下是一个生成10个char*型的指针数组的代码,要存储char*型的数组,其数组名,即指针类型,必须为char**型。
char ** p;
p = (char **) malloc(sizeof(char *) * 10);
这里需要注意两个地方:
1 指针的强制转换。
malloc的返回值为void*型,所以在赋值给char**型时,要强制转换为目标类型。部分编译器对此检查不严格,但为了可移植性,还是加上强制转换为好。
2 malloc参数的确定。
malloc参数值为申请内存空间的大小,每个char *型的空间为sizeof(char *), 10个空间就再乘10。
一般来说,无论是何种类型TYPE,在申请时均可以写作
TYPE * p = (TYPE*)malloc(sizeof(TYPE) * N);
这样的形式。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com