Редактировать: Для этого задания мне нужно указать, сколько прямоугольных «зон» мы помещаем в декартову сетку.Наши 4 входа - это 2 (x, y) координаты x1
, y1
, x2
, y2
для каждой зоны.Координаты должны быть нижним левым углом и верхним правым углом прямоугольника.мы проверяем, перекрывает ли каждая зона какую-либо из предыдущих зон, поэтому мне нужно сохранить координаты предыдущих зон, чтобы я мог использовать их позже для проверки перекрытий.Мой профессор требует, чтобы мы использовали динамическое выделение памяти для этой программы.
Я пытаюсь создать массив координат x и y для сравнения друг с другом.Каждая итерация цикла for
будет запрашивать 2 координатные точки (x1
, y1
, x2
, y2
) для сравнения со следующим набором точек, поэтому каждый раз цикл for
заканчивается, эти введенные координаты должны быть сохранены.Я уже использовал malloc()
для каждого из значений, мне просто нужна помощь, чтобы выяснить, как уберечь их от стирания при эффективном запуске следующего цикла for
.Должен ли я создать массив для каждого из значений или это будет неэффективно?
int i, j;
int zones, *x1, *y1, *x2, *y2;
scanf("%d", &zones);
x1 = malloc(sizeof(int)*zones);
y1 = malloc(sizeof(int)*zones);
x2 = malloc(sizeof(int)*zones);
y2 = malloc(sizeof(int)*zones);
for(i=0; i<zones; i++)
{
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
}
После сканирования значений я не уверен, куда идти.Также я не уверен, правильно ли я ввожу malloc
.Я хочу, чтобы каждое значение было достаточно большим, чтобы значения равнялись количеству запрашиваемых зон.