📄 动态分配内存.c
字号:
#include <stdio.h>
#include <stdlib.h> //包含内存分配所需的函数
void main()
{
//=======分配内存============
//int ary[20]; //将由操作系统预先分配一块固定的内存块
int *ary; //定义了一个指针变量,此时并没有分配内存块
ary = (int*)malloc(20 * sizeof(int));
/*
malloc()函数在需要时动态分配
malloc()函数允许从空闲内存池中分配内存,它返回一个void类型的指针,这个指针是
所分配内存的起点内存。若没有足够的内存空间,将返回NULL
sizeof(DataType)用于取得数据类型的字节大小
*/
//==============malloc()函数:在头文件"stdlib.h"中====================
//通过指针动态创建一个数组,且进行升序排序
int *p,n,i,j,temp;
printf("请输入数组的大小:\n");
scanf("%d",&n);
p = (int*)malloc(n * sizeof(int)); //动态分配n个int类型大小的内存块
//输入数据
for(i = 0;i < n;++i)
{
printf("请输入第%d个数字:\n",i+1);
scanf("%d",p+i);
}
//进行升序排序
for(i = 0;i < n-1;++i)
{
for(j = i+1;j < n;++j)
if(*(p+i) > *(p+j))
{
temp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = temp;
}
}
//显示数据
printf("\n排序后的数据是:\n");
for(i = 0;i < n;++i)
printf("%d\n",*(p+i));
free(p);//释放内存空间
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -