动态分配内存malloc
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
/***动态分配内存示例***/
/*要求:
* 程序产生n个1000以内的随机数,n值由用户输入,
* 请将它们从小到大排序后输出。
********************************************/
int main()
{
srand(time(NULL));
int num,n;
int *ptr=NULL;
cout<<"请输入要产生的随机数个数:";
cin>>n;
ptr=(int *)malloc(sizeof(int)*n);
cout<<"产生的随机数为:"<<endl;
for(int i=0;i<n;i++)
{
num=rand()%1000;
*(ptr+i)=num;
cout<<num;
cout<<'\t';
}
for(int i=n-1;i>0;i--) //给10个数冒泡排序,共需要九轮----n
{
for(int j=0;j<i;j++) //第一轮需要比9次,去掉最大值;则第二轮需要比8次:1-9,2-8,3-7------n
{
int temp;
if(*(ptr+j)>*(ptr+j+1))
{
temp=*(ptr+j);
*(ptr+j)=*(ptr+j+1);
*(ptr+j+1)=temp;
}
//两者写法均可
// if(ptr[j]>ptr[j+1])
// {
// temp=ptr[j];
// ptr[j]=ptr[j+1];
// ptr[j+1]=temp;
// }
}
}
cout<<'\n'<<"从小到大排序后为:"<<endl;
for(int i=0;i<n;i++)
{
cout<<ptr[i];
cout<<'\t';
}
free(ptr);
return 0;
}