#c
Вопрос:
У меня есть динамический массив int в структуре, и я хочу распечатать() все элементы в этом массиве.
а также получить минимальное значение, так как я не знаю размер массива, я не знаю, как это сделать.
Вы можете мне помочь?
Комментарии:
1. Пожалуйста, отправьте код, который у вас есть, чтобы мы могли помочь
2. поскольку я не знаю размер массива — вы должны это знать. Вы распределили его по размеру сертификата, верно?
Ответ №1:
поскольку я не знаю размер массива, я не знаю, как это сделать.
Вы должны знать размер вашего массива. Ваша структура должна содержать размер этого массива:
struct your_struct {
// fields...
int *array; // Your dynamic array
int size; // Your array size
};
Чтобы напечатать любой массив (а не только динамически выделенные массивы), вы можете определить функцию, которая делает это за вас:
void print_array(int *array, int size, const char *sep)
{
int i;
for (i = 0; i < size; i )
printf("%d%s", array[i], sep);
}
sep
позволяет указать, как разделять элементы массива. Это может быть пробел
, тире -
, кома ,
, бар |
и т. Д.
Чтобы получить минимальное значение, вы также можете реализовать функцию, которая делает это за вас:
// Assuming size > 0
int array_min(int *array, int size)
{
int min = array[0];
int i;
for (i = 1; i < size; i )
if (min > array[i])
min = array[i];
return min;
}