C语言申请内存?

我想知道这句申请内存的语句的意思怎么用?是什么意思?int*p,n;scanf("%d",&n);p=(int*)malloc(sizeof(int)*n);... 我想知道这句申请内存的语句的意思怎么用?是什么意思?
int *p,n;
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
展开
 我来答
我随风动159

2019-12-20 · TA获得超过2万个赞
知道大有可为答主
回答量:9752
采纳率:79%
帮助的人:233万
展开全部
但在某些时候,我们需要的数组的长度是无法预先确定的,要解决这样的限制,需要使用动态数组。动态数组是相对于静态数组而言。动态数组的内存空间是从堆(heap)上分配的,是在执行代码过程中分配的,当程序执行到这些语句时,才为其分配。注意,程序员自己负责释放内存。
1
2
#include<stdio.h>
#include<stdlib.h>

int main(int arcv, char * argv[])
{
int arrLen;
char *array;

char c;
int i;

printf("please set the size of the len:\n");
scanf("%d", &arrLen);

array = (char *)malloc(arrLen*sizeof(char));
if(array == NULL)
{
printf("malloc fail\n");
return -1;
}

for(i = 0; i < arrLen;i++)
{
c = getchar();
array[i] =c;//*array++ =c;
}

for( i = 0; i < arrLen; i++)
{
printf("this array is %c\n", array[i]);
}

free(array);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
mallco和free成对出现,在用完申请的内存之后及时释放,否则会造成内存泄漏。
我们在一些项目中经常出现内存泄漏
请叫我声杰哥
2019-12-20 · TA获得超过1624个赞
知道答主
回答量:7149
采纳率:25%
帮助的人:313万
展开全部
如果c语言申请,但是它的内存的话可以清理掉,然后再重新的申请。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漫忻公西灵卉
2020-04-05 · TA获得超过3983个赞
知道大有可为答主
回答量:3099
采纳率:27%
帮助的人:203万
展开全部
#include
<stdio.h>
#include
<malloc.h>
void
main()
{int
a=10;
int
p*;//定义了一个整数类型的指针
p=malloc(sizeof(int)*a);//分配40个字节的内存空间
*p=5;
*(p+1)=6;
//将分配的内存空间的前两个整数赋值为5和6
free(p);
//使用完之后释放内存空间
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亥夏侯戎4M

2019-12-20 · TA获得超过4306个赞
知道大有可为答主
回答量:1.2万
采纳率:65%
帮助的人:589万
展开全部
语言申请内存就是把语句说的清楚呃,游离让别人能听出来他这个什么意思?不能胡说乱说。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BingoTse0
2019-12-20 · TA获得超过8625个赞
知道大有可为答主
回答量:1.7万
采纳率:61%
帮助的人:650万
展开全部
在C语言中,使用malloc函数来申请内存。函数原型如下:

#include<stdlib.h>

void *malloc(size_t size);

参数size代表需要动态申请的内存的字节数,若内存申请成功,函数返回申请到的内存的起始地址,若申请失败,返回NULL, 在使用该函数时应注意以下几点

1.只关心申请内存的大小,该函数的参数很简单,只有申请内存的大小,单位是字节

2.申请的是一块连续的内存,该函数一定是申请一块连续的区间,可能申请到内存比实际申请的大,但也有可能申请不到,若申请失败,则返回NULL

3.返回值类型是void*,函数的返回值是void*,不是某种具体类型的指针,可以理解成该函数只是申请内存,对在内存中存储什么类型的数据,没有要求,因此,返回值是void*,实际编程中,根据实际情况将void*转换成需要的指针类型

4.显示初始化,注意:堆区是不会自动在分配时做初始化的(包括清零),所以程序中需要显示的初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式