问题是如果我们已经处于与pointer to pointer
一起运行的函数,如何调用请求pointer to pointer
的函数。我尝试了一些变体,但所有变种都编译错误(SIGSEGV)http://rextester.com/ZSW68923
void test_sessiontwo ( int **ptr_to_ptr )
{
std::cout << *ptr_to_ptr;
}
void test_session ( int **ptr_to_ptr )
{
std::cout << "Hello, world2!\n" << *ptr_to_ptr;
**ptr_to_ptr = 20;
test_sessiontwo ( ptr_to_ptr ); // ERROR. HOW TO CALL THIS???
}
int main()
{
int* ptr_int;
*ptr_int = 10;
test_session ( &ptr_int );
std::cout << "Hello, world!\n";
}
答案 0 :(得分:2)
此代码段
int* ptr_int;
*ptr_int = 10;
已经错了。指针ptr_int未初始化。所以程序有不确定的行为。
要测试您的代码,您可以编写例如
int main()
{
int* ptr_int = new int( 10 );
test_session ( &ptr_int );
std::cout << "Hello, world!\n";
delete ptr_int;
}
答案 1 :(得分:2)
尝试
int i=10;
int *ptr_int = &i;
test_session(&ptr_int);