在C函数中对数组进行排序

Jor*_*per 1 c arrays pointers

所以我需要将数组传递给函数sort并让它对它进行排序,它在外面工作但不能让它在函数内部工作.需要传递指针只是不确定如何.

#include <stdio.h>

void sort(int *number, int n) {

    /* Sort the given array number, of length n */
    int temp = 0, j, i;

    for (i = 1; i < n; i++) {
        for (j = 0; j < n - i; j++) {
            if (number[j] > number[j + 1]) {
                temp = number[j];
                number[j] = number[j + 1];
                number[j + 1] = temp;
            }
        }
    }
}

int main() {
    int n = 20;
    int *ptr = malloc(n * sizeof *ptr);
    int i = 0;

    while (i < n) {
        ptr[i] = rand() % 100;
        i++;
    }
    int j = 0;
    while (j < n) {
        printf("%d , ", ptr[j]);
        j++;
    }
    void sort(ptr, n);
    printf("\n");

    int x = 0;
    while (x < n) {
        printf("%d , ", ptr[x]);
        x++;
    }
}
Run Code Online (Sandbox Code Playgroud)

K S*_*iel 5

void sort(ptr, n); 应该只是 sort(ptr, n);

我可能错了,但我相信C编译器,第一种形式被解释为函数原型,第二种形式被解释为实际的函数调用.