数组分配动态内存
#include<stdlib.h> #include<stdio.h> int main(void) { int n,i; int *p; printf("请输入序列个数:"); scanf("%d",&n); p = (int*) malloc(sizeof(int)*n);//开辟动态内存区,将地址转换成int *型,然后在放在p1中。 printf("请输入序列数值:"); for(i=0;i<n;i++) { scanf("%d",p+i); } printf("输入原序列数为:"); for(i=0;i<n;i++) { printf("%d ",*(p+i)); } printf("\n"); free(p); system("pause"); return 0; }
#include<stdio.h> #include<stdlib.h> void BubbleSortSmallToBig(int *array, int len); void CheckArrSum(int *array,int len); int main(void) { int n,i; int *p; printf("请输入序列个数:"); scanf("%d",&n); p = (int*) malloc(sizeof(int)*n);//开辟动态内存区,将地址转换成int *型,然后在放在p1中。 printf("请输入序列数值:"); for(i=0;i<n;i++) { scanf("%d",p+i); } printf("输入原序列数为:"); for(i=0;i<n;i++) { printf("%d ",p[i]);// *(p+i) } printf("\n"); BubbleSortSmallToBig(p, n); printf("从小到大排列为:"); for(i=0;i<n;i++) { printf("%d ",*(p+i));// *(p+i) } printf("\n"); CheckArrSum(p,n); free(p); //释放内存(free),否则会造成内存泄露. printf("释放内存%d\n",*p); system("pause"); return 0; } void BubbleSortSmallToBig(int *array, int len) { int j,t,temp; for(j=0;j<len;j++) { for(t=len-1;t>j;t--) { if(array[t]<array[t-1]) { temp=array[t]; array[t]=array[t-1]; array[t-1]=temp; } } } } void CheckArrSum(int *array,int len) { int j=0,temp=0,sum=0; while(j!=len) { temp = array[j]; while(temp==array[j]) { sum++; j++; } printf("序列中数值%d出现%d次\n",temp,sum); sum = 0; } }