?? 動(dòng)態(tài)分配內(nèi)存.c
字號(hào):
#include <stdio.h>
#include <stdlib.h> //包含內(nèi)存分配所需的函數(shù)
void main()
{
//=======分配內(nèi)存============
//int ary[20]; //將由操作系統(tǒng)預(yù)先分配一塊固定的內(nèi)存塊
int *ary; //定義了一個(gè)指針變量,此時(shí)并沒有分配內(nèi)存塊
ary = (int*)malloc(20 * sizeof(int));
/*
malloc()函數(shù)在需要時(shí)動(dòng)態(tài)分配
malloc()函數(shù)允許從空閑內(nèi)存池中分配內(nèi)存,它返回一個(gè)void類型的指針,這個(gè)指針是
所分配內(nèi)存的起點(diǎn)內(nèi)存。若沒有足夠的內(nèi)存空間,將返回NULL
sizeof(DataType)用于取得數(shù)據(jù)類型的字節(jié)大小
*/
//==============malloc()函數(shù):在頭文件"stdlib.h"中====================
//通過指針動(dòng)態(tài)創(chuàng)建一個(gè)數(shù)組,且進(jìn)行升序排序
int *p,n,i,j,temp;
printf("請(qǐng)輸入數(shù)組的大小:\n");
scanf("%d",&n);
p = (int*)malloc(n * sizeof(int)); //動(dòng)態(tài)分配n個(gè)int類型大小的內(nèi)存塊
//輸入數(shù)據(jù)
for(i = 0;i < n;++i)
{
printf("請(qǐng)輸入第%d個(gè)數(shù)字:\n",i+1);
scanf("%d",p+i);
}
//進(jìn)行升序排序
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;
}
}
//顯示數(shù)據(jù)
printf("\n排序后的數(shù)據(jù)是:\n");
for(i = 0;i < n;++i)
printf("%d\n",*(p+i));
free(p);//釋放內(nèi)存空間
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -