怎样为一个字符数组建立动态内存空间?a[n]=(char *)malloc(n*sizeof(c
怎样为一个字符数组建立动态内存空间?a[n]=(char*)malloc(n*sizeof(char))这么写行么?...
怎样为一个字符数组建立动态内存空间?a[n]=(char *)malloc(n*sizeof(char))这么写行么?
展开
3个回答
展开全部
由于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详解:
展开全部
不,应该是
char* a;
a = (char *) malloc(n*sizeof(char));
a就是空间的首地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=号左边只能是一个指针变量,因为右边建立动态单元后只提供它的地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询