1. 程式人生 > >函式間資料拷貝 stack overflow

函式間資料拷貝 stack overflow

完成程式,實現對陣列的降序排序
#include <stdio.h>
void sort( );
int main()
{
int array[]={45,56,76,234,1,34,23,2,3}; //數字任//意給出
sort( );
return 0;
}
void sort( )
{
____________________________________
}

解答:
#include<stdio.h>
#include<string.h>
 
void sort() {
    int a;
    char *p;
    static int array2[]={45,56,76,234,1,34,23,2,3}; //數字任//意給出  
    static int array3[]={1,2,3,23,34,45,56,76,234}; //數字任//意給出  
    p=(char*)&a;
    while(p++) {
        if(memcmp(p,array2,sizeof(array2))==0) {
            memcpy(p,array3,sizeof(array3));
            return;

        }
    }
}
 
int main() {
    int i;
    int array1[]={45,56,76,234,1,34,23,2,3}; //數字任//意給出  
    sort();
    for(i=0;i<8;i++) {
        printf("%d/n",array1[i]);
    }
    return 0;
}