#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
void insertion_sort(int arr[]);
void insertion_sort(int arr[]) {
int hold;
int key;
for (int i = 2; i < 7; i++) {
key = arr[i];
hold = i- 1;
while (hold >= 0 && arr[hold] > key) {
arr[hold + 1] = arr[hold];
hold--;
}
arr[hold + 1] = key;
}
}
int main() {
int arr[] = {3,4,5,6,7,1,4};
insertion_sort(arr);
for (int i = 0; i < sizeof(arr)/sizeof(int); i++) {
printf("%d", arr[i]);
}
return 0;
}
配列の長さを得るには[sizeof(arr)/ sizeof(int)]を使用できないようですinsertion_sort内にあります。だから私は代わりに整数を使いました。どのような理由があり、関数のパラメータとして取られた配列を操作する適切な方法は何ですか?配列をパラメータとして使用する場合、配列の長さを取得するにはどうすればよいですか?