gpt4 book ai didi

c++ - 打印指向指针的指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:53 25 4
gpt4 key购买 nike

这可能很简单,但我很困惑!从指针到指针提取信息时出现段错误。请参阅 main() 中的 cout 部分。任何帮助将不胜感激。
谢谢..

#include <stdlib.h>
#include <iostream>

typedef struct{
int hour;
int minute;
} Time;

Time* GetNextTime(void)
{
Time *p_time = new Time;
return p_time;
}

void GetTime( Time **sometime )
{
int length = 10;
sometime = new Time*[length];
for(int i=0; i<length; i++)
{
sometime[i] = GetNextTime();
sometime[i]->hour = rand()%24 ;
sometime[i]->minute = rand()%60;
std::cout << "Entered times " << sometime[i]->hour << " hour " << sometime[i]->minute << " minutes " << std::endl;
}
}


int main()
{
Time** _time;
GetTime( _time );

//here is the question
// I cant print them from original _time
for( int i=0; i<10; i++)
std::cout << " Print times " << (*_time)[i].hour << " hour " << (*_time)[i].minute << " minutes " << std::endl;

}

最佳答案

您有时按值而不是按引用传递 ,因此它保持未初始化状态。将 GetTime 更改为以下内容:

void GetTime( Time ** &sometime ) //& means pass by reference

因为您正在创建一个指针数组,所以您也可以在打印期间使用数组符号来访问它们。

std::cout <<  " Print times " << _time[i]->hour << " hour "
<< _time[i]->minute << " minutes " << std::endl;

关于c++ - 打印指向指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568535/

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