void assignVal(int *loopCount)
{
//lots of stuff with print statements to know where func stop executing
cout << "before assign resultCount" << endl;
*loopCount = 3; //I want the loopSize int in the main function to be equal to 3;
cout << "after assign resultCount" << endl;
return;
}
int main()
{
int loopSize;
assignVal(&loopSize);
//Doesn't get here or below
for(int i = 0; i < loopSize; i++)
{
cout << i << endl;
}
}
Я пытаюсь передать переменную loopSize
, которая будет назначена внутри функции assignVal(int*)
. У меня нет контроля над основной функцией, это для хакерка (это явно не код из проблемы, я просто показываю сильно измененную версию небольшой части, которая не работает для меня. Я также не имею никакого контроля над assignVal(int*)
сигнатура функции. Мне нужно получить это int *, изменить его внутри функции, а затем просто вернуться. Я не знаю, почему это не работает, так я бы это делал где-то еще. 1005 * "после присвоения resultCount" никогда не печатается, и программа прекращает выполнение там. Я могу подтвердить, что это компилируется.
Изменить: Следует отметить, что если я назначу loopCount
, как это
int* arr = {3};
loopCount = arr;
Функция продолжает нормально работать, но значение вне функции по какой-то причине неверно.