Итак, я пытаюсь выяснить способ итерации, хотя массив передается в функцию, не зная размера. Я сталкиваюсь с бесконечными циклами с моим кодом, потому что массивы не завершены NULL. Поскольку массив превращается в указатель через функцию, я не могу использовать sizeof (Array)/sizeof (int), чтобы получить количество элементов. Есть ли способ сделать это без NULL, заканчивающего мои массивы?Итерация через массив c через функцию
Моя функция находкой:
int find(const int* arr, int val)
{
int pos = 0;
while (arr != NULL)
{
if (*arr == val)
{
return pos;
}
pos++;
}
return -1;
};
Мой главный:
int IntArr[] = { 1, 2, 3, 4, 5 };
int index = find(IntArr, 4);
cout << "find(IntArr, 4)" << endl;
cout << "index: " << index << endl << endl;
Если вы не знаете размер, вы являетесь SOL. Если вы догадаетесь, вы ошибетесь. Вы говорите, что нет терминатора? Хорошо, тогда вам нужно пройти через другую сторону, как в дополнительном аргументе. – Deduplicator
Передайте размер массива или используйте 'std :: array' или' std :: vector' и передайте по ссылке, поскольку они знают свой размер (или передают их итераторы начала и конца) –
PS есть 'std :: find' function –