Хотел проверить насколько долго будет выполняться код, который многократно копирует большой массив в функцию и пришел вот к такому «результату»:
#include <iostream>
void test(int array[], int count)
{
array[0] = 123;
int i = 0;
int x,y = 123;
for (i; i < count; i++)
{
x = y;
}
}
int main ()
{
const unsigned int llong = -1;
std::cout << llong;
int array[llong] = {};
for (int i = 0; i < llong; i++)
test(array[llong], llong);
}
В итоге компилятор выдает вот такую ошибку и вот такое замечание:
1.cpp: В функции «int main()»:
1.cpp:19:33: ошибка: invalid conversion from «int» to «int*» [-fpermissive]
19 | test(array[llong], llong);
| ~~~~~~~~~~~^
| |
| int
1.cpp:2:15: замечание: при инициализации 1 -го аргумента «void test(int*, int)»
2 | void test(int array[], int count)
| ~~~~^~~~~~~
---------------------------------------------
В чем ошибка? как изменить код, чтобы компилятор не жаловался на несоответсвие типов? что делает -fpermissive?
я знаю в коде много ненужных строчек