问题标签 [pass-by-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1747 浏览

c - 将动态数组传递给 C 中的函数

我正在尝试通过编写简单的代码片段来学习指针。我今天写了以下内容,

当我在主函数中使用 malloc 时,代码按预期工作;但是当我在被调用函数中使用它时,它没有,我得到分段错误。我进行了一些研究并了解了一些基础知识,例如 1. 数组名称实际上是指向数组中第一个元素的指针。所以,我正确地传递了参数。2. 数组得到更新,因为我也在被调用函数中打印数组。

由于 arr_p 实际上是指向 arr 指向的位置,所以当我执行 "arr_p = (int *)temp" 时,不是说 arr 也指向这个分配的内存空间吗?我正在寻找内存中发生的情况,为什么我会在这里遇到内存访问冲突?我不想用一些部分推导的假设来说服自己。

0 投票
4 回答
128 浏览

c++ - 按值传递/指针/引用说明

我需要对按值/指针/引用传递的一劳永逸的澄清。

如果我有一个变量,例如

我想把它传递给一个像

在我当前将 SomeInt 传递给 DoSomething() 的情况下,我希望 SomeInt 的值根据我们在 DoSomething() 中对其所做的任何事情进行更新,并且在内存和性能方面最有效,所以我不会复制变量? . 话虽如此,以下哪个原型可以完成这项任务?

我实际上如何将变量传递给函数?前两个原型有什么区别?

最后,如果在类中使用函数

如果我将一个整数传递给 ChangeValue,当我传入的整数被删除时,这是否意味着当我尝试在类中使用 MyInteger 时,它将不再可用?

谢谢大家的时间,我知道这是一个基本的问题,但我不断遇到的解释让我更加困惑。

0 投票
1 回答
119 浏览

c++ - 通过引用传递指针 c++

是的,我已经阅读了很多教程和问题,也尝试了很多组合,但似乎不起作用。我的目标是不使用动态分配。

我的课程如下所示:

当我这样做时,主要是:

1.主要:

结果:PCam

但是当我尝试在外部类中创建实例并将其指向页面时,它会失败。

2.

页面类:

主要的:

结果:页面

预期结果:PCam

我的课程:

页:

主:

电脑摄像头:

任何帮助,将不胜感激。谢谢。

0 投票
3 回答
8722 浏览

c - 对函数调用中的单指针和双指针参数感到困惑

我试图更深入地了解 C 函数中的指针参数。我编写了一个测试程序来尝试查看将单指针与双指针传递给函数然后对其进行修改之间的区别。

我有一个有两个功能的程序。第一个函数modifyMe1将单个指针作为参数并将 a 属性更改为 7。第二个函数modifyMe2将双指针作为参数并将 a 属性更改为 7。

我希望第一个函数modifyMe1是“按值传递”,也就是说,如果我传入我的结构指针,C 将创建它所指向的数据的副本。而对于后者,我正在做一个“按引用传递”,它应该修改适当的结构。

然而,当我测试这个程序时,这两个函数似乎都修改了适当的结构。我知道我对指针的性质存在误解,这肯定是论据。有人可以帮我解决这个问题吗?

谢谢!

这是我所拥有的:

我的输出是:

0 投票
3 回答
1155 浏览

c++ - C++ 成员函数需要指针,通过引用传递的坏习惯?

如果 C++ 类成员函数需要一个指向对象的指针作为参数,那么通过引用传递是否被认为是不好的做法?

例如,下面的代码可以工作,但是如果没有按引用传递,它就会变成危险代码,并且会在运行时导致灾难性错误。

考虑如果按值传递,并且制作了参数的副本,那么在以后取消引用时这将是灾难性的。

替代方案是这样的:

我喜欢一致性,默认为第一种类型,但是我怀疑第二种形式被认为是更好的做法。是这样吗?

0 投票
1 回答
382 浏览

objective-c - 维护对 UITextField“文本”字段的引用

问题:

我正在尝试创建一个自定义 UITextField 类“UIValidatedTextField”,它允许设置某些规则来确定输入是否有效。例如,您可以设置一个正则表达式参数以确保输入是特定格式的,即密码、电子邮件地址等...

另一个功能是指定和设置引用另一个 UITextField 的参数,并确保输入与来自另一个 UITextField 的输入匹配。

我在这里遇到的问题是我将此引用设置为另一个 UITextField。但是,当我访问它的“文本”字段时,我发现即使我在其中输入了一些内容,文本字段中也没有任何内容。

我在下面提供了相关代码:

请注意,textFields 是 UIValidatedTextFields - 下面提供的自定义类:

谢谢您的帮助!

0 投票
9 回答
92427 浏览

swift - Swift 是按值传递还是按引用传递

我对 Swift 很陌生,我刚刚读到类是通过引用传递的,而数组/字符串等是被复制的。

通过引用传递是否与在 Objective-C 或 Java 中实际传递“a”引用的方式相同,还是按引用传递是正确的?

0 投票
1 回答
81 浏览

c++ - C++指针传递和引用传递

我的问题非常具体。我想做与上面的代码相同的事情,但不是通过指针传递函数赋值(int **)的参数来通过引用来完成。我怎样才能做到这一点?

0 投票
0 回答
462 浏览

c - 在链表添加函数中传递值

我在过去的 2.5 个小时里创建了这个链表,并试图理解为什么它没有将内存地址传递给链表的头部。在我开始学习我的班级正在学习 Java 中的数据结构之前,我试图理解 C 中的链表。我查看了其他问题,但我不明白为什么它不起作用。请原谅我一直在努力理解一切的评论。提前感谢您的时间和帮助!

新赋值后head变量等于NULL head = addFamMember(NULL); 在主线程中。但是我可以通过打印它的成员(名称、年龄和下一个指针)看到在 add 函数内部分配了内存。这是输出:

这是代码:我留下他的评论可能有助于描述我的想法并查明我哪里出错了。

0 投票
2 回答
136 浏览

c++ - 接收指向 C 风格字符串的指针作为参数并能够分配内存或修改它的正确方法是什么?

我有以下方法签名:

我想做的是分配大小为namefor的内存,name_out然后将内容复制namename_out.

或者将其更改为:

并允许函数的用户首先分配和跟踪内存,如果给定数组的大小不足以包含字符串,则返回错误?

我唯一不喜欢的是它需要get_name()函数的用户了解名称字符串的长度。

我觉得有两个功能int get_name_length();get_name(char* name_out);

由于这是编程作业的一部分,因此有规定:

  1. 不允许使用字符串类。
  2. 必须使用 C 风格的字符串。
  3. 不能使用向量。
  4. 该函数必须返回一个 int 来指示错误。
  5. 不允许异常处理。

谢谢你。