编写指针函数,改变数组顺序

用指针编写,从键盘输入是个整数,然后把前七个整数与后三个整数交换后输出
例:
输入:1 2 3 4 5 6 7 8 9 10
输出:8 9 10 1 2 3 4 5 6 70

代码:


#include <stdio.h>
#include <stdlib.h>

int *process(int *array,int len)
{
    int i = 0;
    int *p = (int*)malloc(len*sizeof(int));

    if(p == NULL){
        printf("malloc error\n");
        exit(1);
    }
    for(i = 0;i < 3;i++){
        p[i] = array[len - 3 + i];
    }
    for(i = 3;i < len;i++){
        p[i] = array[i - 3];
    }
    return p;
}

int main()
{
    unsigned int i = 0;
    printf("hello world\n");
    int array[10] = {1,2,3,4,5,6,7,8,9,10};
    int *p = process(array,sizeof(array)/sizeof(int));
    for(i = 0;i < sizeof(array)/sizeof(int);i++){
        printf("%d ",array[i]);
    }
    printf("\n");
    for(i = 0;i < sizeof(array)/sizeof(int);i++){
        printf("%d ",p[i]);
    }
    printf("\n");
    free(p);
    return 0;
}

执行结果:

img