![]() |
1
13
指针被传递给函数 按价值
就我个人而言,我不喜欢这两种风格 输入 ,输出应由返回值处理。到目前为止,我还没有看到一个令人信服的理由来改变C++中的这个规则。因此,我的建议是:使用以下代码。
|
![]() |
2
6
通过值将参数传递给foo。改为
|
![]() |
3
4
你在传递价值观。 您需要通过引用传递:
也许这样做更清楚:
|
![]() |
4
2
出于同样的原因,不能通过按值传递来初始化整数。 |
![]() |
5
1
1)
这应该是:
2) 如果将指针传递给指针,则函数应该能够分配内存:
|
![]() |
6
1
指针是一个整数值(32位操作系统是32位整数),它是内存地址。将整数值传递到函数中。通过将值推送到堆栈上进行传递。然后从堆栈中删除该值,并通过在其上分配一些内存来更改该值。然后退出函数并删除堆栈帧。该堆栈帧中的任何值都将被删除,包括新分配的内存地址。
和
在这里你申报b。它是一个指向内存位置的整数值。您传入该整数值的地址。即指向内存位置的另一个整数值,该整数值包含指向内存位置的整数值。现在在foo函数中 将内存分配给指向另一个内存位置的地址。然后,当您退出函数时,堆栈展开,指向指针的指针消失。但是,原始整数值(即指针)仍然保留您刚刚通过调用new创建的值。 |
![]() |
7
0
您必须使用引用或执行以下操作:
(这是老派的C方式,我认为参考更好) |
![]() |
8
0
因为您正在向函数传递NULL。您需要的是(指针到指针):
|
![]() |
Community wiki · safe_ptr实现 1 年前 |
![]() |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |