问题标签 [pointers]
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# 中的函数声明:
与 C 中的这个相同:
即在C#中,被调用函数是否在后台接收指针?
c++ - 查找由智能指针引起的内存泄漏
有人知道发现智能指针引起的内存泄漏的“技术”吗?我目前正在开发一个用C++编写的大型项目,该项目大量使用带有引用计数的智能指针。显然,我们有一些由智能指针引起的内存泄漏,它们仍然在代码中的某处被引用,因此它们的内存不会被释放。很难找到带有“不必要”引用的代码行,这会导致相应的对象不被释放(尽管它不再使用)。
我在网上找到了一些建议,建议收集引用计数器的递增/递减操作的调用堆栈。这给了我一个很好的提示,哪段代码导致引用计数器增加或减少。
但我需要的是某种算法,将相应的“增加/减少调用堆栈”组合在一起。删除这对调用堆栈后,我希望(至少)剩下一个“增加调用堆栈”,它向我展示了带有“不必要”引用的代码段,导致相应的对象未被释放。现在修复泄漏没什么大不了的!
但是有人对进行分组的“算法”有想法吗?
开发在Windows XP下进行。
(我希望有人理解,我试图解释的......)
编辑:我说的是循环引用引起的泄漏。
c++ - 通过不同类型的指针删除缓冲区?
假设我有以下 C++:
根据 C++ 标准,这是否安全?我需要转换回 achar*
然后使用delete[]
吗?我知道它适用于大多数 C++ 编译器,因为它是普通数据,没有析构函数。能保证安全吗?
c++ - C ++中的多重间接有什么用?
Foo **
在什么情况下,您可能希望在 C++中使用多重间接(即,如 中的指针链)?
c - 为什么我不能在 C 中将 'char**' 转换为 'const char* const*'?
以下代码片段(正确)在 C 中给出警告,在 C++ 中给出错误(分别使用 gcc 和 g++,使用版本 3.4.5 和 4.2.1 进行测试;MSVC 似乎并不关心):
我可以理解并接受这一点。
此问题的 C++ 解决方案是将 b 更改为 const char * const *,这不允许重新分配指针并防止您规避 const-correctness ( C++ FAQ )。
但是,在纯 C 中,更正后的版本(使用 const char * const *)仍然会发出警告,我不明白为什么。有没有办法在不使用演员表的情况下解决这个问题?
澄清:
1)为什么这会在C中产生警告?它应该是完全 const 安全的,而且 C++ 编译器似乎也能认出它。
2)在说(并让编译器强制执行)我不会修改它指向的字符的同时,接受这个 char** 作为参数的正确方法是什么?例如,如果我想写一个函数:
我想在 char** 上调用它,参数的正确类型是什么?
c - 指针和引用之间的真正区别是什么?
AKA - 对指针的痴迷是什么?
我只真正使用过现代的、面向对象的语言,如 ActionScript、Java 和 C#,我并不真正了解指针的重要性以及您使用它们的目的。我在这里错过了什么?
c++ - 在 C++ 中我无法掌握指针和类
我刚从大学毕业,已经在 C++ 中工作了一段时间。我了解并使用 C++ 的所有基础知识,但我很难掌握更高级的主题,例如指针和类。我已经阅读了一些书籍和教程,并且理解了其中的示例,但是当我查看一些高级的现实生活示例时,我无法弄清楚它们。这让我很生气,因为我觉得它让我无法将我的 C++ 编程提升到一个新的水平。其他人有这个问题吗?如果是这样,你是如何突破的?有谁知道任何真正描述指针和类概念的书籍或教程?或者可能是一些使用高级指针和类技术的具有良好描述性注释的示例代码?任何帮助将不胜感激。
pointers - MIPS 汇编指针指向指针?
我想我知道如何处理这个案子,但我只是想确保我做对了。假设您有以下 C 代码:
P 包含一个地址,该地址指向内存中具有另一个地址的位置。我想修改第二个地址。所以MIPS代码:
你会这样做吗?
c - 函数调用中的 Malloc 似乎在返回时被释放?
我想我已经把它归结为最基本的情况:
输出是这样的:
如果有人能阐明我的理解失败的地方,将不胜感激。