dereference相关内容

C ++初级问题:解引用对乘法

只是进入C ++。当我看到乘法符号( * )被用于表示变量的取消引用时,我会不断地被抛弃。 例如: unsigned char * pixels = vidgrabber.getPixels(); 这会抛弃别人吗? 谢谢。 pps我有另一个相当简单的问题,没有得到回答:(这里: 解决方案 C和继承C ++,被操作符淹没,并且内在上下文敏感。你必须习惯它: 如 ..
发布时间:2016-10-27 01:48:30 C/C++开发

c ++可能的空指针解引用

我对某些代码运行cppcheck以查找可能的运行时错误。并且它报告一个可能的空指针引用以下情况: Foo * x = ... // defined somewhere ... Foo * y(x); //可能的空指针解引用。 编辑:更好的示例 for(int i = 0; i { Foo * x(ArrayOfObjsContainingFo ..
发布时间:2016-10-24 15:01:08 C/C++开发

什么是C ++中的隐式解引用

C ++中的隐式解引用到底是什么意思?是否意味着当我把一个变量的引用传递给一个函数参数我不需要&在前面使用它的值? 解决方案 我假设你的教学试图解释指针和引用之间的区别。 将引用指向隐式取消引用的指令是相对常见的(但在技术上并不准确)。 int x = 5; int * xP =& x; int& xR = x; xR = 6; //如果你认为一个引用是一 ..
发布时间:2016-10-23 21:23:20 C/C++开发

什么是C ++中的隐式解引用

C ++中的隐式解引用到底是什么意思?是否意味着当我把一个变量的引用传递给一个函数参数我不需要&在前面使用它的值? 解决方案 我假设你的教学试图解释指针和引用之间的区别。 将引用指向隐式取消引用的指令是相对常见的(但在技术上并不准确)。 int x = 5; int * xP =& x; int& xR = x; xR = 6; //如果你认为一个引用是一 ..
发布时间:2016-10-23 21:11:18 C/C++开发

表达式:String iterator not dereferencable

我很难在C ++中使用std :: string :: iterators。这个代码编译良好(仍然没有得到正确的输出,但这是我的错:TODO,修复算法)在Dev-C ++,我不会得到运行时错误。错误是在Visual Studio Express 2008 C ++,其中我得到一个错误指向:“Expression:string iterator not dereferencabl ..
发布时间:2016-10-23 13:19:03 C/C++开发

C ++指针在*和 - >之间的差异。

可能的重复: C ++:ptr-> hello(); / * VERSUS * /(* ptr).hello(); Too坏我不能google这个... 有人可以解释或指向我在哪里可以找到这两者之间的区别?我理解*是一个解引用运算符,什么关于 - >?有什么区别? 解决方案 a-> b 糖为(* a).b 唯一的特殊情况是对象 - > 当在对象上使用 - >时调用。 ..
发布时间:2016-10-20 23:47:01 C/C++开发

char和char *(p​​ointer)

我想了解指针如何工作,所以我创建了这个小程序。首先我创建一个p指针,指向一个char。 第一个问题是这一点。如果我创建一个指针,它的值是一个memoryaddress(如果我指向一个非指针对象),但这次是“哈哈”在我的例子。为什么它在char *中以这种方式工作?我怎么可以通过cin >> p增加价值? 我的第二个问题是,我创建了一个q char,它在我创建它的点上具有* p指针的值。 ..
发布时间:2016-10-20 22:13:30 C/C++开发

对象的内部表示

所有这一次,我认为当你做类似ObjectA.field1的时候,ObjectA就像栈上的任何值,你基本上访问它的字段。现在我正在通过一个关于OOP语言的类的笔记,意识到当你做ObjectA.field1实际发生是HEAP(AddressA的ObjectA)(field1),它返回你field1的值。这使我有点困惑。谁能告诉为什么有一个查找,虽然我们已经有对象的价值?希望我能够解释.. 解决方 ..
发布时间:2016-10-20 22:11:48 C/C++开发

- >在智能指针中的使用

我有一个简单的智能指针实现,如下面的代码片段1所示。和第二个片段中名为Dummy的虚拟测试类。代码片段3显示了我们如何利用这个简单的智能指针访问函数foo()。 我的问题是关于我们通过使用 - >运算符调用类Dummy中的函数foo()的方式。 - >运算符已经返回一个指向原始指针的指针。所以,我认为,为了使我们能够调用函数foo(),我们需要对返回的原始指针执行第二 - >操作。然而,许多 ..
发布时间:2016-10-19 21:47:24 C/C++开发

是否解引用指针使其成为副本?

解引用一个指针并将其传递给一个函数,它通过引用创建一个对象的副本。 解决方案 在这种情况下,指针的值被复制(虽然这不一定是优化器可以优化它的情况)。 int val = * pPtr;在这种情况下,不会发生复制: b int& rVal = * pPtr; 没有复制发生的原因是因为引用不是机器码级别构造。它是一个更高级别的 ..
发布时间:2016-10-14 20:11:34 C/C++开发

访问元素的引用向量指针

如果我在C ++中有一个向量的指针: vector * vecPtr; 我想访问一个向量元素,然后我可以通过dereferncing vector: int a =(* vecPtr)[i]; 但是这个解引用实际上是否会在栈上创建一个我的向量的副本?让我们说向量存储10000个int,将通过解除引用vecPtr 10000 int被 ..
发布时间:2016-10-14 11:54:00 C/C++开发

C ++ - (*)之间的差异。和 - >?

性能之间或之间有任何差异: ptr-> a 和 (* ptr).a(); ? 解决方案 因为你在评论中要求它。您可能正在寻找的内容可以在标准(5.2.5类成员访问)中找到: 3如果E1具有类型“指向类 X“的指针,那么表达式E1-> E2是 转换为等价形式 (*(E1))E2; 编译器将生成完全 ..
发布时间:2016-10-14 10:56:50 C/C++开发

其中哪些将创建一个空指针?

标准说,取消引用空指针会导致未定义的行为。但是什么是“空指针”?在下面的代码中,我们称之为“空指针”: struct X { static X * get(){return reinterpret_cast(1); } void f(){} }; int main() { X * x = 0; (* x).f(); //空指针? (1) x = ..
发布时间:2016-10-14 10:25:42 C/C++开发

什么是返回类型的赋值运算符?

我刚刚开始C ++。除了我对返回类型的赋值和取消引用运算符感到困惑之外,所有都很好。我跟着这本书C ++ Primer。在各种情况下,作者说返回类型的赋值操作符是指左手操作数的类型,但后来,他说返回类型是左手操作数的类型。我已经参考C ++ 11标准秒。 5.17,其中返回类型被描述为“左值引用左手操作数”。 同样,我不知道dereference是否返回指向的对象,对对象的引用。 这些 ..
发布时间:2016-10-14 10:21:09 C/C++开发

ptr-> hello(); / * VERSUS * /(* ptr).hello();

我在学习C ++指针,并且 - > 操作符对我来说很奇怪。而不是 ptr-> hello(); 可以写(* ptr).hello(); 是这种情况还是有什么区别? 解决方案 - >运算符只是语法糖,因为(* ptr).hello )是要输入的PITA。对于在ASM级别生成的指令,没有区别。事实上,在一些语言(D的想法),编译器根据类型计算一切。如果你做 ptr.hello(),它只 ..
发布时间:2016-10-13 10:01:51 C/C++开发

检查迭代器是否有效

有任何方法来检查一个迭代器(无论是从向量,列表,deque ...)是(仍然)dereferencable,即没有被无效? 我一直使用尝试 - catch 示例:(不起作用) list l; for(i = 1; i l.push_back(i * 10); } itd = l.begin(); itd ++; if(something){ ..
发布时间:2016-10-13 09:46:42 C/C++开发

C#命名空间别名限定符(::) VS对其操作()。

快速和简单的问题。我有点明白了命名空间别名预选赛做什么,它是在一个命名空间访问成员,但是所以没有对其操作。我真的感到困惑,在这种情况下,为什么要使用一个比其他或不同的,他们每个如何完成同样的事情。 使用colAlias​​ System.Collections中=; 命名空间myns名字 { 类TestApp { 静态无效的主要() { colAlias​​.Hashtabl ..
发布时间:2016-09-19 12:43:21 C#/.NET