标签: pointers

NULL vs nullptr(为什么它被替换?)

我知道在C++中0x或者NULLnullptr基于指针的应用程序所取代.我只是好奇他们为什么要更换它?

在处理指针时,在什么情况下使用nullptr过度NULL有益?

c++ null pointers nullptr

176
推荐指数
4
解决办法
14万
查看次数

人们对C指针有什么困难?

从这里发布的问题数量可以清楚地看出,当人们围绕指针和指针算术时,人们会遇到一些非常有趣的问题.

我很想知道为什么.他们从来没有真正给我带来过重大问题(尽管我在新石器时代首次了解它们).为了更好地回答这些问题,我想知道人们发现什么困难.

所以,如果你正在努力使用指针,或者你最近突然"得到它",指针的哪些方面会导致你出现问题?

c pointers

172
推荐指数
14
解决办法
4万
查看次数

正确的格式说明符打印指针或地址?

我应该使用哪种格式说明符来打印变量的地址?下面很多我很困惑.

%u - 无符号整数

%x - 十六进制值

%p - 无效指针

哪个是打印地址的最佳格式?

c format pointers memory-address

167
推荐指数
5
解决办法
25万
查看次数

我可以使用if(指针)而不是if(指针!= NULL)吗?

检查指针是不是NULL通过简单写入if(pointer)或我必须使用它是否安全if(pointer != NULL)

c++ null pointers if-statement null-pointer

164
推荐指数
6
解决办法
8万
查看次数

在C中,为什么有些人在释放之前会抛出指针?

我正在研究一个旧的代码库,几乎每次调用free()都会在其参数上使用强制转换.例如,

free((float *)velocity);
free((float *)acceleration);
free((char *)label);
Run Code Online (Sandbox Code Playgroud)

其中每个指针都是相应的(和匹配的)类型.我完全没有理由这样做.这是非常古老的代码,所以我想知道它是否是K&R的东西.如果是这样,我实际上希望支持可能需要这个的旧编译器,所以我不想删除它们.

使用这些演员阵容有技术原因吗?我甚至没有看到使用它们的实用理由.在释放数据类型之前提醒自己有什么意义?

编辑:这个问题不是另一个问题的重复.另一个问题是这个问题的一个特例,如果亲密的选民能够阅读所有的答案,我认为这是显而易见的.

Colophon:我给出了"常量答案"的核对标记,因为这可能是为什么需要这样做的真正原因; 然而,关于它是一个ANSI C之前的习惯(至少在一些程序员中)的答案似乎是它在我的情况下使用的原因.很多人在这里有很多好处.感谢您的贡献.

c pointers casting

164
推荐指数
6
解决办法
1万
查看次数

C中空指针的指针算法

当一个指针到特定类型的(比如int,char,float,..)被递增,其值增加该数据类型的大小.如果void指向大小数据的指针x递增,它如何获得指向x前面的字节?编译器如何知道添加x指针的值?

c pointers void-pointers pointer-arithmetic

162
推荐指数
7
解决办法
11万
查看次数

我应该存储整个对象,还是指向容器中对象的指针?

从头开始设计新系统.我将使用STL来存储某些长寿命对象的列表和地图.

问题:我是否应该确保我的对象具有复制构造函数并在我的STL容器中存储对象的副本,或者通常更好地自己管理生命和范围并将指针存储到我的STL容器中的那些对象?

我意识到这在细节方面有点短暂,但我正在寻找"理论上"更好的答案,如果它存在,因为我知道这两种解决方案都是可能的.

使用指针的两个非常明显的缺点:1)我必须在超出STL的范围内管理这些对象的分配/释放.2)我无法在堆栈上创建临时对象并将其添加到我的容器中.

还有什么我想念的吗?

c++ pointers stl

161
推荐指数
6
解决办法
6万
查看次数

X没有实现Y(...方法有一个指针接收器)

关于这个" X没有实现Y(...方法有一个指针接收器) "的事情,已经有几个问答,但对我来说,他们似乎在谈论不同的事情,而不是适用于我的具体案例.

因此,我没有将问题变得非常具体,而是将其广泛和抽象化 - 似乎有几个不同的案例可以使这个错误发生,有人可以总结一下吗?

即,如何避免这个问题,如果发生,有什么可能性?谢谢.

methods pointers interface go

157
推荐指数
3
解决办法
5万
查看次数

为什么C++库和框架从不使用智能指针?

我在一些文章中读到,几乎从不使用原始指针.相反,它们应始终包含在智能指针内,无论是作用域还是共享指针.

但是,我注意到像Qt,wxWidgets和像Boost这样的库这样的框架永远不会返回也不会期望智能指针,就好像它们根本就没有使用它们一样.相反,他们返回或期望原始指针.有什么理由吗?当我编写公共API时,我应该远离智能指针,为什么?

只是想知道为什么许多重大项目似乎避免使用智能指针.

c++ api pointers smart-pointers

156
推荐指数
5
解决办法
3万
查看次数

153
推荐指数
5
解决办法
29万
查看次数