#include <stdio.h>
#include <stdlib.h>
// #define SAFE_MALLOC(ptr, n) \
// (_Generic((ptr), \
// int*: (int*)malloc(sizeof(*(ptr)) * (n)), \
// double*: (double*)malloc(sizeof(*(ptr)) * (n)), \
// float*: (float*)malloc(sizeof(*(ptr)) * (n)), \
// char*: (char*)malloc(sizeof(*(ptr)) * (n)), \
// default: malloc(sizeof(*(ptr)) * (n)) \
// ))
int input(int *arr, int *n) {
if (scanf("%d", n) != 1) return -1;
arr = (int*)malloc(sizeof(*arr) * *n);
if (arr == NULL) return -1;
printf("Память была веделена вот указатель:\nадресс = %p\nзначение = %d\n\nЗНАЧЕНИЕ n = %d\n", arr, *arr, *n);
for (int i = 0; i < *n; ++i) {
if (scanf("%d", &arr[i]) != 1) return -1;
printf("%p\n", &arr[i]);
}
printf("Массив под номером [0] = %d\nПОСЛЕДНИЙ АДРЕC = %p\n", arr[0], arr);
printf("Массив под номером [0] = %d\nПОСЛЕДНИЙ АДРЕC = %p\n", arr[0], arr);
return 0;
}
void sort(int *arr, int *n) {
printf("началось");
for (int i = 0; i < *n; ++i) {
for (int j = 0; j < *n - i - 1; ++j)
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
printf("здохло");
}
// void output(int *arr, int *n) {
// for (int i = 0; i < *n; ++i) {
// if (arr[i] == *n-1)
// printf("%d", arr[i]);
// else %p\n ПЕРВЫЙ ЭЛЕМЕНТ [0] = %d", arr, *arr);
// printf("%d ", arr[i]);
// }
// }
int main(void) {
int *arr = NULL;
int n = 0;
int valid_input = input(arr, &n);
if (valid_input) {
printf("n/a");
return 0;
}
printf("АДРЕС ЛАСТА %p\n ПЕРВЫЙ ЭЛЕМЕНТ [0] = %d", arr, *arr);
free(arr);
// sort(arr, &n);
// output(arr, &n);
return 0;
}