在C语言程序中,指针数组可以用malloc函数生成吗?
3个回答
展开全部
可以的,任何存储空间,均可以通过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);
这样的形式。
以下是一个生成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);
这样的形式。
展开全部
可以用malloc分配一块空间,存储很多指针,也可以简单理解为一个存储指针数组
int **p = (int**)malloc(sizeof(int*) * n);
p[0] ~ p[n-1]就是存储int*的数组。
int **p = (int**)malloc(sizeof(int*) * n);
p[0] ~ p[n-1]就是存储int*的数组。
更多追问追答
追问
你写个代码给我吧!
追答
上面那句就是啊啊啊~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询