我在调试代码时遇到问题。我有一个结构和一个 计算以 HH:MM:SS 格式输入的时差的函数。 我的代码是:
const int hourConv = 3600; // used to get total hours from total seconds
const int minConv = 60;
struct MyTime {
int hours, minutes, seconds;
};
MyTime *determineElapsedTime(const MyTime *time1, const MyTime *time2)
{
long timeOneSec = time1->hours*hourConv + time1->minutes*minConv + time1->seconds;
long timeTwoSec = time2->hours*hourConv + time2->minutes*minConv + time2->seconds;
long ans = timeTwoSec - timeOneSec;
cout << ans;
MyTime *timeDiff;
timeDiff->hours = ans / hourConv;
timeDiff->minutes = ans % hourConv / minConv;
timeDiff->seconds = ans % hourConv % minConv;
return timeDiff;
}
我认为问题出在倒数第二行:
timeDiff->seconds = ans%hourConv%minConv;
因为当我评论那行时,
我没有收到段错误。但我不明白为什么
该行无效。任何帮助,将不胜感激。谢谢!
最佳答案
您的代码包含:
MyTime *timeDiff;
timDiff->hours = ...
你已经创建了一个 MyTime 指针但没有分配任何东西。此时 timeDiff 为空。
关于c++ - 帮助解决结构中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705727/