⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 动态分配内存.c

📁 用C语言编写的一些源码示例
💻 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 + -