怎样为一个字符数组建立动态内存空间?a[n]=(char *)malloc(n*sizeof(c

怎样为一个字符数组建立动态内存空间?a[n]=(char*)malloc(n*sizeof(char))这么写行么?... 怎样为一个字符数组建立动态内存空间?a[n]=(char *)malloc(n*sizeof(char))这么写行么? 展开
 我来答
白眉鹰王天鹰教
推荐于2016-05-22 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:48.4万
展开全部

由于malloc返回的是一个指针,所以你必须把a定义为指针,而不能是数组,其实数组名也是个指针,所以你可以把指针当做数组用,

const int n =2;

char *a;

a = (char *)malloc(n * sizeof(char));//为a分配长度为n的char空间,

a[0]=2;

a[1]=3;//赋值

printf("%d %d\n",a[0],a[1]);//打印

free(a);//释放申请的数组空间


下面给出完整的代码:

#include<stdio.h>
#include <stdlib.h>

void main()
{

const int n =2;
char *a;
a = (char *)malloc(n * sizeof(char));

// *a=1;//指针方式赋值
// *(a+1)=3;

a[0]=2;//数组方式赋值

a[1]=3;

printf("%d %d\n",a[0],a[1]);

free(a);
}

malloc详解:

http://blog.csdn.net/xw13106209/article/details/4962479

百度网友a3f2a9b
2014-12-26 · TA获得超过3042个赞
知道小有建树答主
回答量:344
采纳率:66%
帮助的人:291万
展开全部

不,应该是

char* a;
a = (char *) malloc(n*sizeof(char));
a就是空间的首地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太原大海
2014-12-26 · TA获得超过799个赞
知道小有建树答主
回答量:553
采纳率:75%
帮助的人:328万
展开全部
=号左边只能是一个指针变量,因为右边建立动态单元后只提供它的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式