用c语言如何没指针分配动态空间
答案:4 信息版本:手机版
解决时间 2019-10-04 22:17
已解决
2019-10-04 08:22
用c语言如何没指针分配动态空间
最佳答案
2019-10-04 08:38
gt;
#include
void main()
{
float *p;
int i;
int M = 4;//我这里是直接赋的值,当然你也可以将M搞成用户输入值
p=(float *)malloc(M*sizeof(float));
p[0]=1.1;
p[1]=2.2;
p[2]=3;
p[3]=4;
for(i=0;i
#include
void main()
{
int **p;
int M=3,N=4;//我这里是直接赋的值,当然你也可以将M,N搞成用户输入值
p=(int **)malloc(sizeof(int *)*M);
p[0]=(int *)malloc(sizeof(int)*N);
p[1]=(int *)malloc(sizeof(int)*N);
p[2]=(int *)malloc(sizeof(int)*N);
p[0][0]=71;
printf("%d",p[0][0]);
}
另外,站长团上有产品团购,便宜有保证
全部回答
1楼
2019-10-04 11:47
没指针,分配动态空间??
2楼
2019-10-04 10:38
数据结构专门有讲的,下几个课件看看就行了.
1.分配内存空间函数malloc
调用形式: (类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。“size”是一个无符号数。例如: pc=(char *) malloc (100); 表示分配100个字节的内存空间,并强制转换为字符数组类型, 函数的返回值为指向该字符数组的指针, 把该指针赋予指针变量pc。
2.分配内存空间函数 calloc
calloc 也用于分配内存空间。调用形式: (类型说明符*)calloc(n,size) 功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。例如: ps=(struet stu*) calloc(2,sizeof (struct stu)); 其中的sizeof(struct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配2块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。
3.释放内存空间函数free
调用形式: free(void*ptr); 功能:释放ptr所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域:
如
main()
{
struct stu
{
int num;
char *name;
char sex;
float score;
} *ps;
ps=(struct stu*)malloc(sizeof(struct stu));
ps->num=102;
ps->name="zhang ping";
ps->sex='m';
ps->score=62.5;
printf("number=%d\nname=%s\n",ps->num,ps->name);
printf("sex=%c\nscore=%f\n",ps->sex,ps->score);
free(ps);
}
3楼
2019-10-04 09:03
申请用malloc,释放用free,成对使用,防止内存泄漏
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯