Задача - создать функцию
int* pairSumSearch(int* data, int numEls, int pairSum)
, который ищет в первых numEls списка, если целые числа 'data', найти два смежных целых числа, которые суммируются с 'pairSum', и вернуть указатель на позицию первого из двух целых чисел. Если нет двух целых чисел, которые суммируют в pairum, то функция должна вернуть нулевой указатель. Я думаю, что у меня есть весь код, за исключением части указателей.
int* pairSumSearch(int* data, int numEls, int pairSum)
{
int* point = NULL;
int checker = data[0];
for (int i = 1; i < numEls-1; i++) {
if (checker + data[i] == pairSum) {
*point = i-1;
break;
} else {
checker = data[i];
}
}
return point;
}
Контрольный пример
int main(void)
{
int data[] = {1, 2, 3, 4, 5, 6, 7, 10, 9, 10};
int* p = pairSumSearch(data, 10, 19);
if (p != NULL) {
printf("Found at position %zd\n", p - data);
}
else {
puts("Not found");
}
}
но я просто получаю ошибки сегмента, где вместо этого он должен возвращать
Found at position 8