问题标签 [double-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 投票
3 回答
67 浏览

c - 双点列表 C

我想使用双指针创建一个列表并使用 void 作为返回。

addnode 中的第一个 if 始终执行,但如果列表不为空,我想追加列表,但它似乎永远不会工作。也会出现分段错误,因为在最后一个 printf 中它试图获取列表中的下一个元素,但它从未像我想要的那样初始化。

如果一切如我所愿,我应该打印出来

20

20

30

0 投票
1 回答
763 浏览

c - 铸造双指针以及如何在 C 中使用

这里基本上是一个简单的双指针代码和我正在尝试使用的代码:

我想将值输入到 cmdArgs1 中,这基本上就是我正在做的并导致 seg 错误

我在想我不能使用“cmdArg1 [counter]”复制到“ls”,因为双指针不能那样工作?我不确定...

即使我认为它有点模糊,但我不知道如何很好地表达这个问题,我会尝试根据评论进行更新。谢谢!

0 投票
2 回答
329 浏览

c - 出现错误:尝试在 C 中实现锯齿状数组时需要左值

我正在尝试在学习 C 语言的同时实现 Jagged Array 的概念。

我的代码如下: -

编译时会出现错误:-

26 错误:需要左值作为赋值的左操作数

基本上对于这行代码,我获取每个指针元素的值并将每行中的最后一个指针元素分配给 null :-

基本上这个锯齿状数组的概念是它输入行数,然后分别输入每行中的元素数,然后输入那么多元素。

我在每个行指针中创建一个 (n+1) * sizeof(int) 的动态数组,其中 n 是该行中的元素数。第 (n+1) 个元素用于存储空指针,以便在显示数组时我们可以在哪里找到下一行。

很抱歉发布整个代码,但由于我不知道代码中可能出现的问题,所以我发布了整个代码。

任何帮助,将不胜感激。

谢谢

0 投票
2 回答
297 浏览

c - 将元素添加到链表的双指针

所以我正在尝试将一张牌添加到玩家的手牌中......并且只有在我对顶部和最后一张牌使用双指针时,这张牌的值才会被传递回主函数。但是 last->pt 不能转换为 temp,我该如何解决这个问题?

0 投票
2 回答
1050 浏览

objective-c - C:双指针和 Objective-C NSError 双指针的用法

我碰巧在 SO 上偶然发现了关于双星 ( **) 与NSError. 决定更深入地挖掘它,这导致我重新访问C.

我已经在这里阅读了很多帖子(这里不重复)NSError,我理解他们为什么这样做。

因此,我决定在 IDE (Xcode) 中编写一个小片段来亲自查看它的实际效果。

方法:

输出:

之前:a 是:10 b 是:20

之后:a 是:33 b 是:22

a(通过单指针)和b(通过双指针)的值都发生了变化。

那么,如果我们可以只使用单个指针a来更改 (of )的值,为什么我们需要使用指向指针的指针,以便我们可以在方法调用中修改对象在其参数 ( ) 中传递的对象?NSErrorNSErrorNSError&error

此外:

关于上述内容,将某些内容传递给参数 inC实际上是将副本传递给参数(即使在单个指针的情况下,也只会传递它的副本),因此在方法范围内所做的任何更改都会不影响传递给它的原始值(这就是他们使用双星的原因)。

但是上面只使用了一个指针的示例似乎与此相矛盾,因为值(即a由单个指针指向 - c)确实发生了变化?

0 投票
1 回答
63 浏览

c++ - 谁能解释一下这段代码?

“header”是一个结构的对象,你可以认为 header.img 的值为 496。header 结构有 3 个整数元素,所以值是 12 个字节。(考虑 4 个字节一个 int)

我知道 MatrixBuffers 是一个指向 496 双打的指针。但我不明白第二行发生了什么。

1.这是否意味着 MatrixBuffers[0] 是指向 496*12 双精度数的指针?2.for循环发生了什么?3.稍后在代码中,MatrixBuffer[0] 被传递给一个函数。这是否意味着我将一个指针作为基地址传递给 MatrixBuffers[0] ?

0 投票
3 回答
585 浏览

c++ - 释放双指针上的内存

尝试释放 for 循环中 p 的最后一个元素时,我的代码停止运行。任何人我可能做错了什么?

编辑:即使将其更改为 (char* )malloc(bs sizeof(char *));我仍然有同样的问题

这仍然不起作用:

使用 new 而不是 malloc 也不能解决问题

但是,此代码可以很好地释放内存。

所以问题似乎与这段代码有关

我希望这是一个隐式链表,任何人都知道我做错了什么?

0 投票
1 回答
4567 浏览

c - 通过 C 中的双指针访问结构元素

我正在使用结构实现链接列表。我有一个结构 -

现在假设我声明了一个变量nodeptr *ptr;。我如何访问成员datanext使用ptr

0 投票
2 回答
3658 浏览

c - 指向二叉搜索树节点的双指针

对你们中的一些人来说,这似乎是一个愚蠢的问题,我知道我经常把事情搞混,但我需要理解代码,这样我才能停止沉迷于它,而专注于我为什么需要使用它的真正问题。

所以,在代码中我看到了几个这样的任务:

此示例取自 literateprograms.org。

所以对我来说似乎 &(*node) 是不必要的,我不妨只写 node->left ,但代码似乎在我无法理解的地方工作,我想知道是不是因为我我误解了这些线路上发生的事情。特别是,在代码中的一个地方,它通过不断地将“已删除”数据移动到树的底部以安全地删除节点而不必“破坏”来删除节点,我迷路了,因为我没有怎么弄

可以保持树结构完整。我不明白这如何确保结构完好无损,并希望知道发生了什么的人提供一些帮助。我将 node 解释为堆栈上的局部变量,在函数调用时创建。由于它是一个双指针,它指向堆栈中的一个位置(我假设这一点,因为他们在函数调用之前做了 &(*node) ),要么是它自己的堆栈,要么是之前的函数,然后指向所述节点在堆上。

在上面的示例代码中,我认为应该做的是向左或向右切换,因为其中一个是 NULL,然后切换不是的(假设另一个不是 NULL?)正如我所说,我不确定这将如何工作。我的问题主要与我认为 &(*node) <=> node 但我想知道是否不是这种情况等有关。

0 投票
1 回答
88 浏览

c - 如何从 int** 创建 const int**

有没有办法从 int** 创建一个 const int**?

我目前正在使用:

const int **pixel2=*pixel;

const char **header2=*header;

我不断收到错误:cscd240HW34.c:52:21: warning: initialization from incompatible pointer type [enabled by default] const int **pixel2=*pixel;