问题标签 [pointer-to-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.
c - 如何使用指向 C 中结构指针的指针?
我想在双指针下更改结构的成员。你知不知道怎么?
示例代码
c - 一个顺序可以有多少个连续的嵌套指针(指向指针的指针)?做参考有限制吗?
下面的程序声明了一个指针,然后又声明了一个新指针来保存前一个指针变量的地址。我可以使用多少嵌套指针变量来保存内存地址有什么限制吗?
c - 指向 C 中的指针的指针
我需要 C 中指针的帮助。我有两个结构,一个结构是这样的:
我有一个这样的功能:
这会产生错误。我需要结构 rd 指向 b ,如示例中所示。我需要存储一个双指针,因为 s2 以类似列表的方式链接,所以我需要 ** 指针才能删除列表的第一个元素。我在 rd->d = &b 之类的评论中进行了赋值,但是当我尝试在函数中尊重字段“d”时,我读取的内存无效,我不明白为什么。
c - 多维数组和指向指针的指针
当您创建多维数组char a[10][10]
时,根据我的书它说您必须使用类似于char a[][10]
将数组传递给函数的参数。
为什么必须这样指定长度?您不只是将双指针传递给与,并且该双指针不是已经指向分配的内存吗?那么为什么参数不能是char **a
?您是否通过提供第二个 10 来重新分配任何新内存。
c - 释放内存时出现奇怪的 C 错误?
我仍在尝试让我的遗传算法工作(昨天我遇到了内存分配问题,因此在尝试释放它时出现了一个可怕的错误)但今天我有这段代码
free_generation()
我在函数调用之前检查了它的内容,如下图所示:
(变量前四个值)
但是在free_generation()
函数内部,同一个变量会丢失一些值(特别是当i
取值为 2 时,i
即 for 循环索引),如下所示:
(函数内部的变量值)
我在下面发布了 free_generation 代码:
的定义szChromosomes
如下:
我需要澄清的是,这个值的丢失仅发生在顶部发布的 while 循环的第二次迭代之后。我的意思是在第一次运行时一切正常,但在这次迭代之后,第二次运行的行为如上所述。
编辑:
我忘了包括循环控制变量的增量(感谢指出!不,它不是全局 xD)。我包括部分交叉代码:
c - 为什么要使用双指针变量来接收另一个指针的地址(&ptr1)
这个问题我想了好久,一直没能理解,为什么&ptr1
不能ptr2
在第3行赋值,&ptr1
是指针的地址,这个地址和其他地址没什么区别一个整数,比如说
这意味着我可以将整数的地址分配给指针,但不能将指针的地址分配给指针,这两个“地址”之间的差异可能会使它们不同吗?公共变量的地址可以分配给单指针,但指针的地址不能分配给单指针?
我知道正确的方法是使用双指针声明ptr2
,但为什么单指针不能?
c - 指针数组的动态内存分配
我正在尝试编写一个程序,该程序从文本文件中读取一系列字符串并将它们存储在字符串数组中,为每个元素动态分配内存。我的计划是使用指针将每个字符串存储在一个数组中,然后随着读取的更多内容增加数组大小。我无法理解为什么下面的测试代码不起作用。这是一个可行的想法吗?
arrays - 指向二维的双指针
我有一个值的整数数组,我想创建一个指向该数组的双指针。我假设这个一维整数数组实际上代表一个二维数组。例如,如果我有一个,int A[2000*12]
那么我有 12 行和 2000 行。问题是我不知道如何初始化指向数组A的指针。我最初的想法是这样的:
当然,这是不正确的。更准确地说,我收到以下错误:分配中的指针类型不兼容
pointer-to-pointer - 通过指针到指针导航数组
我试图通过双指针移动数组。这是代码。
我希望更新功能var
。pptr
我可以使用双指针(**sptr,**pptr)
将指针(sptr,ptr)
(指向数组)引用到函数中。我可以更新第一个,但第二个没有变化。我认为问题在于声明*sptr++
& *ptr++
。
请帮助我了解如何通过双指针浏览数组。谢谢
c++ - 指针的地址在 C++ 中引发段错误
我有一个函数应该返回一个双指针,它应该将指针的地址返回到一个数据,在这个例子中是一个字符数组
原始数据在构造函数中作为参数发送
然后将其复制到名为 frame_data 的 void* 数据成员
返回双指针的函数定义为
最后是后面调用data()的函数
这就是程序段错误的地方。显然出了点问题,但我只是不确定问题出在哪里。在这个程序中,sprintf 行是不可更改的,因为 data() 返回一个双指针,知道我哪里出错了?