Хорошо, у меня возникла проблема с текущим назначением (поверьте мне, это крошечная часть этого), поскольку мы обязаны писать в коде C, а не C ++, и нам не разрешено изменять определенные части кода,Итак, у меня есть определенная структура:
typedef struct someStruct {
int what;
int something[MAX];
int another[MAX];
} someType;
в main () Я инициализирую все значения в определенной структуре:
someType whatever, *whatptr;
EDIT: конечно, установите указатель на структуру,пытаюсь упростить код для примера. Он уже присутствует в моем коде
whatptr = &whatever;
whatever.what = 0;
// initialize both arrays to hold 0 at all indexes
// Then I must call a function progRun()
progRun(); //I need to pass struct 'whatever' in some way
Теперь progRun () выглядит так:
void progRun(){
printWhat(&whatever);
if (whatever.what == 0) {
//do stuff
}
}
Я не могу ничего изменить в этом кодекроме того, что параметры для передачи внутри функции progRun (), и я могу добавить вещи перед printWhat ().Я попытался изменить progRun на
void progRun(someType *stptr)
, затем вызвать его в main как
progRun(whatptr);
, но по какой-то причине это вызывает проблему переполнения стека, я попытался пройти черезотладчик, и это происходит только при вызове функции.Есть ли лучший способ передать структуру «what» в функцию, чтобы она могла быть передана в progRun () и printWhat () и получить доступ к «what.what»?
Любая помощь будет принята с благодарностью!тем временем я попытаюсь понять это сам, если смогу.
РЕДАКТИРОВАТЬ: Что-то еще должно быть неправильно в коде, даже если все остальное скомпилировано и работает отлично, пока этот код не был добавлен.Если я смогу сломать код и выяснить, что не так, я обновлю вопрос.И нет, я не могу опубликовать весь код, так как это задание (это не цель задания, поверьте мне, оно фокусируется на пересылке данных и многое другое, просто нужно, чтобы эта базовая вещь работала) Спасибо всем за помощь.
РЕДАКТИРОВАТЬ: номер MAX, использованный в структуре для чего-то [MAX] и другого [MAX], был очень большим (я оставил свой рабочий стол, с которого я начал этот проект дома, сейчас я использую старый ноутбук, который можетне обрабатывать большие массивы).Все ответы ниже и некоторые вещи, которые я использовал раньше, теперь работают нормально.