码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中动态内存的分配

时间:2018-04-25 20:02:20      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:运行   scanf   bsp   程序员   申请   引用   exit   自动   变量   

动态内存分配:根据需要随时开辟,随时释放的内存分配方式。
分配时机和释放时机完全由程序员决定,由于没有数据声明,这部分空间没有名字。
无法像使用变量或数组那样通过变量名或数组名引用其中的数据,只能通过指针变量来访问。
注意malloc与free一般都是成对出现的只要成功申请的空间使用完后必须要释放,否则会造成内存的泄露。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int sum(int *,int);///函数的声明
 4 int mian()
 5 {
 6     int n,s,i,*p;
 7     scanf("%d",&n);
 8     p=(int *)malloc(n*sizeof(int));///malloc的返回值是void*,与p类型不一致需要强制转换,若不则自动但是会受到警告
 9     if(p==NULL)///动态内存分配失败
10         exit(1);///停止程序的运行
11     for(i=0;i<=n-1;i++)
12         scanf("%d",p+1);///指针变量的输入
13     s=sum(p,n);///调用函数传指针变量
14     printf("%d\n",s);
15     free(p);///释放内存中由malloc()函数分配的空间
16     return 0;
17 }
18 int sum(int *p,int n)
19 {
20     int i,s=0;
21     for(i=0;i<=n-1;i++)
22         s=s+(*p++);
23     return s;
24 }

 

C语言中动态内存的分配

标签:运行   scanf   bsp   程序员   申请   引用   exit   自动   变量   

原文地址:https://www.cnblogs.com/wkfvawl/p/8946643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!