I'm clearly doing something wrong or forgetting something. I have defined a structure in a header file with four variables. I then assign values to those variables in a function located in a different .cpp then I try and take the new values from the structure and assign to different variable in another function. Problem is, I'm able to assign values to the variables in the structure but when I try and transfer those values to other variables they become something like -858993460(this is according to the debugger and watching the threads). How do I fix this?
Structure Defined with it's function(even though not it's not currently be used)
struct Setting {
int Max;
int Min;
int Sample;
int Points;
} Set1, Set2;
** Assigning Values to Structure variables**
void Settings::OnBnClickSet() {
GetDlgItemText(ID_Points,str4);
CW2A buf3((LPCWSTR)str4);
Serial Value;
Value.Set1.Points = atoi(buf3);
}
Attempting to transfer those values to another variable
bool Serial::Temperature(CString) {
int Max,Min,SampleTime,Points;
Max = Set1.Max;
Min = Set1.Min;
SampleTime = Set1.Sample;
Points = Set1.Points;
}
You're setting values on a local (automatic) variable. Those changes are local to the function in which the variable is declared (
OnBnClickSet()
).If you want to use a single instance of
Serial
, you will need to either pass it in to theOnBnclickSet()
function, or make it available via some other means (using a global variable or singleton for instance).That's a Magic Number. Convert it to Hex to get 0xcccccccc. Which is the value that's used to initialize variables when you build your program with the Debug configuration settings.
So whenever you see it back in the debugger, you go "Ah! I'm using an uninitialized variable!" All we can really see from the snippet is that your Set1 struct never got initialized. Focus on the code that's supposed to do this, with non-zero odds that you just forgot to write that code or are using the wrong structure object.