Questions tagged «pointers»

“指向”存储在内存中的另一个值的数据类型。指针变量包含某个其他实体(变量或函数或其他实体)的内存地址。此标记应用于涉及使用指针而不是引用的问题。使用指针的最常见的编程语言是C,C ++,Go和汇编语言。使用特定的语言标签。其他有用的标记是描述指针用法的方法,函数,结构等。


3
指向基点的指针可以指向派生对象的数组吗?
今天我去了一次面试,并得到了这个有趣的问题。 除了内存泄漏和没有虚拟dtor的事实之外,为什么此代码还会崩溃? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape { public: virtual void draw() const = 0; }; class Circle : public Shape { public: virtual void draw() const { } int radius; }; class Rectangle : public Shape { public: virtual void …
99 c++  pointers 


4
在Go中使用指针有什么意义?
我知道Go中的指针允许函数参数的突变,但是如果它们仅采用引用(带有适当的const或可变限定符),那不是更简单吗?现在,我们有了指针,并为一些内置类型(如地图和通道)隐式地按引用传递。 我是否缺少某些东西,或者Go中的指针仅仅是不必要的复杂化?
98 pointers  go 


5
如何增加指针地址和指针的值?
让我们假设 int *p; int a = 100; p = &a; 以下代码将实际执行什么操作以及如何执行? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); 我知道,这在编码方面有点麻烦,但是我想知道当我们这样编码时实际会发生什么。 注意:假设的地址a=5120300存储在p地址为的指针中3560200。现在,p & a每条语句执行后的值是多少?
96 c  pointers 

4
如何声明std :: unique_ptr,它的用途是什么?
我尝试了解其std::unique_ptr工作原理,并为此找到了本文档。作者从以下示例开始: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // overloaded * and -> *uptr2 = 23.5; unique_ptr<std::string> ups (new std::string("hello")); int len=ups->size(); 让我感到困惑的是 unique_ptr<int> uptr …
95 c++  pointers  std  unique-ptr 

17
函数指针的意义是什么?
我很难看到函数指针的实用程序。我猜它在某些情况下可能是有用的(毕竟它们确实存在),但是我无法想到使用函数指针更好或不可避免的情况。 您能否举出一些很好使用函数指针的示例(在C或C ++中)?
94 c++  c  function  pointers  c++-faq 

6
C#在字典中存储函数
如何创建可以存储函数的字典? 谢谢。 我有大约30多个可以从用户执行的功能。我希望能够以这种方式执行功能: private void functionName(arg1, arg2, arg3) { // code } dictionaryName.add("doSomething", functionName); private void interceptCommand(string command) { foreach ( var cmd in dictionaryName ) { if ( cmd.Key.Equals(command) ) { cmd.Value.Invoke(); } } } 但是,函数签名并不总是相同的,因此具有不同数量的参数。

12
星号在指针声明中的位置
我最近决定,我只需要最终学习C / C ++,关于指针或更确切地说,它们的定义,我并没有真正了解的一件事。 这些示例如何: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; 现在,据我所知,前三个案例都在做同样的事情:Test不是一个int,而是一个指向int的指针。 第二组示例比较棘手。在情况4中,test和test2都是指向int的指针,而在情况5中,只有test是指针,而test2是“真实” int。情况6呢?与情况5相同?
92 c++  c  pointers  declaration 

5
在C / C ++中声明指针变量的正确方法
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 我注意到有人使用以下表示法声明指针变量。 (a) char* p; 代替 (b) char *p; 我用(b)。符号(a)背后的合理性是什么?符号(b)对我来说更有意义,因为字符指针本身不是类型。而是类型是字符,变量可以是指向字符的指针。 char* c; 看起来好像有一个char *类型,而变量c是该类型。但实际上类型是char,而* c(由c指向的内存位置)就是该类型(char)。如果一次声明多个变量,这种区别就很明显。 char* c, *d; 这看起来很奇怪。c和d都是指向字符的指针。在这种情况下,下一个看起来更自然。 char *c, *d; 谢谢。
91 c++  c  pointers  coding-style 

6
在C ++中删除指针
背景信息:我想把指针包裹住,几个星期前我们刚在学校看到它们,今天练习的时候我遇到了傻子吗?问题,对您来说可能非常简单,但是我几乎没有编程经验。 我已经在SO中看到了很多有关删除指针的问题,但它们似乎都与删除类有关,而不是与“简单”指针(或任何适当的术语)有关,这是我正在尝试的代码跑: #include <iostream>; using namespace std; int main() { int myVar, *myPointer; myVar = 8; myPointer = &myVar; cout << "delete-ing pointers " << endl; cout << "Memory address: " << myPointer << endl; // Seems I can't *just* delete it, as it triggers an error delete myPointer; cout …

1
Rust中的“肥胖指针”是什么?
我已经在多个上下文中阅读过“胖指针”一词,但是我不确定它的确切含义以及何时在Rust中使用它。该指针似乎是普通指针的两倍,但我不明白为什么。它也似乎与特征对象有关。
91 pointers  rust 

8
是否可以将C指针初始化为NULL?
我一直在写类似的东西 char *x=NULL; 假设 char *x=2; 将创建一个char指向地址2 的指针。 但是,在《 GNU C编程指南》中,它指出int *my_int_ptr = 2;将整数值存储2到my_int_ptr分配时的随机地址中。 这似乎在暗示自己char *x=NULL被分配任何价值NULL投的char是在内存中的一些随机地址。 而 #include <stdlib.h> #include <stdio.h> int main() { char *x=NULL; if (x==NULL) printf("is NULL\n"); return EXIT_SUCCESS; } 确实打印 一片空白 当我编译并运行它时,我担心我依赖未定义的行为,或者至少是未指定的行为,因此我应该编写 char *x; x=NULL; 代替。

29
测试指针的有效性(C / C ++)
有什么方法可以(当然,通过编程)确定给定的指针是否“有效”?检查NULL很容易,但是0x00001234之类的东西呢?尝试取消引用此类指针时,会发生异常/崩溃。 最好使用跨平台方法,但也可以使用特定于平台的方法(对于Windows和Linux)。 更新说明: 问题不是陈旧/已释放/未初始化的指针;相反,我正在实现一个API,该API接收来自调用者的指针(例如,指向字符串的指针,文件句柄等)。调用者可以发送(有意或无意)无效值作为指针。如何防止车祸?
90 c++  c  validation  pointers  null 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.