gpt4 book ai didi

c - 第一种情况和第二种情况有什么区别?

转载 作者:行者123 更新时间:2023-12-04 11:37:13 25 4
gpt4 key购买 nike

第一种情况和第二种情况有什么区别,为什么第一种情况按预期工作,而第二种情况却没有? (在第二种情况下,我试图引入一个指针,该指针将指针取消引用到指针,以避免键入额外的星号)。

int _tmain(int argc, _TCHAR* argv[])
{
int* test = NULL;
foo(&test);
}

案例一:

void foo(int** ppPar)
{
*ppPar = (int*)malloc(sizeof(int));
**ppPar = 7;
}

案例二:

void foo(int** ppPar)
{
int* pPar = *ppPar;
pPar = (int*)malloc(sizeof(int));
*pPar = 6;
}

最佳答案

*ppPar = ...

这重新分配了 main 中的指针 test

**ppPar = 7

这会改变 main 中 test 指向的值。


int* pPar = *ppPar;
pPar =

这会生成 main 中指针 test副本,然后重新分配副本。 (所以现在根本没有连接到 test

*pPar = 6;

这改变了 pPar 指向的值,它不再与 test 关联。

关于c - 第一种情况和第二种情况有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25188002/

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