1 #include<stdio.h> 2 #include<malloc.h> 3 4 #define N 8 5 6 void datin(int *p); 7 void printout(int *p,int len); 8 void esort(int p[]); 9 10 int main(void) 11 { 12 int len=0; 13 int *a,*ptrinit; 14 a = (int *)malloc(sizeof(int)*N); 15 ptrinit = a; 16 if(a == NULL) 17 { 18 printf("a malloc err!\n"); 19 return -1; 20 } 21 datin(a); 22 //a = ptrinit; 23 printf("\n input data :\n"); 24 printout(a,N); 25 esort(a); 26 printf("\n esort data :\n"); 27 printout(a,N); 28 29 free(a); 30 printf("\n--exit--\n",len); 31 return 1; 32 } 33 34 void esort(int p[]) 35 { 36 int i=0,j=0; 37 int temp = 0; 38 for(i=0; i<N; i++) 39 for(j=i; j<N; j++) 40 { 41 if(p[i] > p[j]) 42 { 43 temp = p[i]; 44 p[i] = p[j]; 45 p[j] = temp; 46 } 47 } 48 } 49 50 void datin(int *p) 51 { 52 int len =0 ; 53 freopen("data.txt","r",stdin); //data input 54 while(len<N) 55 { 56 scanf("%d",p); 57 len++; 58 p++; 59 } 60 fclose(stdin); 61 } 62 63 void printout(int *p,int len) 64 { 65 int i=0; 66 while(i<len) 67 { 68 printf("%d\t",*p); 69 p++; 70 i++; 71 } 72 }
1 void datin(int *p) 2 { 3 int len =0 ; 4 freopen("data.txt","r",stdin); //data input 5 while(len<N) 6 { 7 scanf("%d",p); 8 len++; 9 p++; 10 } 11 fclose(stdin); 12 }
CC := gcc OBJS := esort.o esort: $(OBJS) $(CC) $(OBJS) -o esort $(OBJS): esort.c $(CC) -c esort.c -o $(OBJS) ARMCC := arm-linux-gcc ARMOBJS := arm_esort.o arm_esort: $(ARMOBJS) $(ARMCC) arm_esort.o -o arm_esort $(ARMOBJS): esort.c $(ARMCC) -c esort.c -o $(ARMOBJS) clean: rm ./*.o rm ./esort rm ./arm_esort
[hy@localhost pjesort]$ make
gcc -c esort.c -o esort.o
gcc esort.o -o esort
[hy@localhost pjesort]$ make arm_esort
arm-linux-gcc -c esort.c -o arm_esort.o
arm-linux-gcc arm_esort.o -o arm_esort
[hy@localhost pjesort]$ cat data.txt 255 16 1000 230 90 171 10 32 [hy@localhost pjesort]$ ./esort input data : 255 16 1000 230 90 171 10 32 esort data : 10 16 32 90 171 230 255 1000 --exit--
代码链接:
http://pan.baidu.com/s/1o83Wqgi
以冒泡排序为例--malloc/free 重定向stdin stdout
原文:http://www.cnblogs.com/hythink/p/5424615.html