C语言申请内存?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言申请内存?相关的知识,希望对你有一定的参考价值。
我想知道这句申请内存的语句的意思怎么用?是什么意思?
int *p,n;
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
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成对出现,在用完申请的内存之后及时释放,否则会造成内存泄漏。
我们在一些项目中经常出现内存泄漏 参考技术A 如果c语言申请,但是它的内存的话可以清理掉,然后再重新的申请。 参考技术B #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);
//使用完之后释放内存空间
参考技术C 语言申请内存就是把语句说的清楚呃,游离让别人能听出来他这个什么意思?不能胡说乱说。 参考技术D 在C语言中,使用malloc函数来申请内存。函数原型如下:
#include<stdlib.h>
void *malloc(size_t size);
参数size代表需要动态申请的内存的字节数,若内存申请成功,函数返回申请到的内存的起始地址,若申请失败,返回NULL, 在使用该函数时应注意以下几点
1.只关心申请内存的大小,该函数的参数很简单,只有申请内存的大小,单位是字节
2.申请的是一块连续的内存,该函数一定是申请一块连续的区间,可能申请到内存比实际申请的大,但也有可能申请不到,若申请失败,则返回NULL
3.返回值类型是void*,函数的返回值是void*,不是某种具体类型的指针,可以理解成该函数只是申请内存,对在内存中存储什么类型的数据,没有要求,因此,返回值是void*,实际编程中,根据实际情况将void*转换成需要的指针类型
4.显示初始化,注意:堆区是不会自动在分配时做初始化的(包括清零),所以程序中需要显示的初始化
以上是关于C语言申请内存?的主要内容,如果未能解决你的问题,请参考以下文章