gpt4 book ai didi

c++ - 尽管在堆上分配,但值仍被破坏

转载 作者:行者123 更新时间:2023-11-28 00:29:21 24 4
gpt4 key购买 nike

<分区>

抱歉,我以为我现在已经理解了堆栈和堆,但显然我错了。我在堆上声明了每个对象,但当第一个方法完成时都一样我可以通过 std::cout 看到时间为零,即:

startTPtr: 00:00:00

当时间在函数中打印时它没问题,但不知何故在函数结束后它被销毁了。

我是不是漏掉了一些关键的东西?我应该从函数返回指针吗?

提前致谢!!!

int main() {

Clock *_clockPtr = new Clock();

MyTime *_startTPtr = new MyTime();
MyTime *_endTPtr = new MyTime();

char *ch = new char[100];

start_app(_startTPtr, _endTPtr, _clockPtr, ch);

cout << "startTPtr: " << *_startTPtr << endl;

return 0;
}

void start_app(MyTime *_startTPtr, MyTime *_endTPtr, Clock *clock, char *ch) {

cout << "Press ENTER to start and finish!";
int newLine = 0;
for (std::string line; std::getline(std::cin, line); ) {

if (newLine == 0) {
std::cout << "... ";
MyTime* myTime1 = new MyTime(clock->give_me_the_time());
_startTPtr = myTime1;
cin >> ch;
} else {
MyTime* myTime2 = new MyTime(clock->give_me_the_time());
_endTPtr = myTime2;
break;
}
cout << "startTPtr: " << *_startTPtr << endl;
newLine++;
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com