pointers相关内容

类将数据成员存储在顺序内存中?

这个问题的简短版本:指向类的第一个数据成员的指针是否会导致指向其所有数据成员的指针? 讨论: 我正在阅读一些示例代码,这很有趣.当一个特定的函数(在本例中是来自 OpenGL 的 glUniformMatrix4fv C 函数)将一个数组作为参数时,它会以常用的 C 方式传递,即使用指向数组第一个元素地址的指针,如下: glUniformMatrix4fv(glvariable, ..
发布时间:2022-01-09 09:49:13 C/C++开发

Opengl顶点属性步幅

嘿.我是 OpenGL ES 的新手,但我对普通的 OpenGL 有一些经验.有人告诉我,由于避免缓存未命中的优化,对顶点缓冲区使用交错数组要快得多. 我开发了一种我将使用的顶点格式,如下所示 结构 SVertex{浮动 x,y,z;浮动 nx,ny,nz;浮动 tx,ty,tz;浮动 bx,by,bz;浮动 tu1,tv1;浮动 tu2,tv2;}; 然后我使用“glVertexAtt ..
发布时间:2022-01-09 09:16:42 C/C++开发

在 HashMap 中增加一个整数

我必须返回对象然后放入一个新对象吗?或者我可以直接增加吗? 整数 temp = myMap.get(key);温度++;myMap.put(key, temp); 没有办法做到这一点(这不起作用): myMap.get(key)++; 解决方案 我必须返回对象然后放入一个新对象吗? 只要你使用 Integer 包装类就可以,因为它是不可变的.您可以改用可变包装类,甚至是具有 i ..
发布时间:2022-01-08 14:29:30 Java开发

STL 迭代器上下文中的奇异值和非奇异值是什么?

C++ 标准 (2003) 中的第 24.1/5 节写道, 就像一个普通的指向数组的指针一样保证有一个指针指向最后一个元素的值的数组,所以对于任何迭代器类型有一个迭代器值指向经过 a 的最后一个元素对应的容器.这些值被称为过终值.价值观迭代器 i 的表达式 *i 被定义被调用可解引用.图书馆从不假设最后的值是可解引用.迭代器也可以具有不属于的奇异值与任何容器相关联.[示例:在声明一个未初始化 ..
发布时间:2022-01-07 11:38:08 C/C++开发

指向 std::vector 和 std::list 元素的指针

我有一个std::vector,其中包含一些ClassA 类的元素.此外,我想使用 std::map 创建索引,该索引将一些键值映射到指向向量中包含的元素的指针. 当元素被添加到向量的末尾(不是插入)时,是否有任何保证这些指针保持有效(并指向同一个对象).即,以下代码是否正确: std::vector贮存;std::map地图;for (int i=0; i ..
发布时间:2022-01-07 11:34:18 C/C++开发

指针作为映射 C++ STL 中的键

我有一个问题,当在地图中用作键时,如何处理指向自定义对象的指针.更具体地说,如果我定义 std::map 默认的 C++ 实现可以处理这些指针吗?还是我需要定义一个自定义比较器函数来处理它?一般来说,使用指向对象的指针作为键是一种好习惯吗? 解决方案 默认实现会比较指针存储的地址,因此不同的对象会被视为不同的键.但是,不会考虑对象的逻辑状态.例如,如果您使用 std::string * ..
发布时间:2022-01-07 11:32:47 C/C++开发

0xDEADBEEF 与 NULL

在各种代码中,我已经看到调试版本中的内存分配带有 NULL... memset(ptr,NULL,size); 或者使用 0xDEADBEEF... memset(ptr,0xDEADBEEF,size); 使用每种方法的优点是什么,在 C/C++ 中实现这一点的一般首选方法是什么? 如果一个指针被分配了 0xDEADBEEF 的值,它是否仍然服从有效数据? 解决方案 使用 ..
发布时间:2022-01-06 23:17:07 C/C++开发

未设置的 C 指针不为空

我正在处理 C 指针.当我编译并运行以下代码时. 示例 1: #include int main(){国际 k;int *ptr;k = 555;如果(ptr == NULL){printf("ptr 为空\n");} 别的 {printf("ptr 不是 NULL\n");printf("ptr 值为 %d\n", *ptr);}printf("ptr 地址为 %p\n", ptr);} ..
发布时间:2022-01-06 23:11:55 其他开发

未初始化指针和空指针的区别

空指针和未初始化指针有什么区别吗?这个问题是在一次采访中被问到的.你能解释一下它们之间的区别吗? 解决方案 取一个未初始化的指针: int* ptr;//指向内存中的任意位置 取一个空指针: int* ptr = NULL;//通常指向0x0(0) 如果取消引用,两者都会导致未定义的行为.NULL 通常定义为 0. ..
发布时间:2022-01-06 23:06:00 其他开发

定义 NULL 和 NULL_POINTER 的正确方法?

据我所知,C 定义 NULL 是这样的: #define NULL ( (void *) 0) 那么,我们应该如何定义 NULL_POINTER 呢?我在我的程序中对其进行了相同的定义并且它起作用了,但我想这只是巧合: #define NULL_POINTER ( (void *) 0) 如果有的话,逻辑定义是什么? 解决方案 #define NULL ( (void *) 0) ..
发布时间:2022-01-06 22:58:26 其他开发

我可以使用 NULL 代替 0 的值吗?

我可以使用 NULL 指针代替 0 的值吗? 或者这样做有什么问题吗? 例如: int i = NULL; 替代: int i = 0; 作为实验,我编译了以下代码: #include int main(void){int i = NULL;printf("%d",i);返回0;} 输出: 0 确实它给了我这个警告,它本身是完全正确的: 警告:初始化从指针生成整数 ..
发布时间:2022-01-06 22:55:19 C/C++开发

错误:未在此范围内声明“NULL"

在 gcc 4.3 上编译 C++ 时收到此消息 error: ‘NULL’ 未在此范围内声明 它出现又消失,我不知道为什么.为什么? 谢谢. 解决方案 NULL 不是关键字.它是一些标准头文件中定义的标识符.你可以包括 #include 将其纳入范围,包括一些其他基础知识,例如 std::size_t. ..
发布时间:2022-01-06 22:52:52 C/C++开发

带有 C 指针结构的 Calloc

我知道要使用的 calloc 请求内存,在所有位上写入 0,然后返回指向它的指针. 我的问题是:如果我将 calloc 与包含指针的结构一起使用,这些指针会具有 NULL 值还是必须将它们设置为指向 NULL? struct a{字符 * 名称;无效 * p;}* 一个; 所以基本上,在我将 calloc 与结构 a 一起使用后,name 和 p 会指向 NULL 吗? 谢谢! ..
发布时间:2022-01-06 22:51:36 其他开发

为什么 Java 有一个“NullPointerException"?当Java中没有指针时?

为什么我会收到一个名为 NullPointerException 如果在 Java 中没有指针这样的概念? 解决方案 是的,这是我在学习 Java LOL 时学到的第一个烦人的事情之一.正如 paxdiablo 提到的那样,它确实应该被称为 NullReferenceException、NoObjectException 或 DereferenceException.引用甚至不必在内部表示 ..
发布时间:2022-01-05 20:43:17 Java开发

fopen() 返回空指针,但文件肯定存在

我的代码如下: FILE *txt_file = fopen("data.txt", "r");如果(txt_file == NULL){perror("无法打开文件");} 返回的错误信息为: 无法打开文件:没有那个文件或目录 文件“data.txt"肯定存在于工作目录中(它存在于包含我的 .c 和 .h 文件的目录中),那么为什么 fopen() 返回一个 NULL 指针? ..
发布时间:2022-01-05 19:39:47 其他开发

对解除引用的指针的引用地址是否与指针地址相同?

在 C++ 中,是否保证对解除引用的指针的引用地址与指针地址相同? 或者,用代码编写,以下断言是否保证始终成立? SomeType *ptr = someAddress;SomeType &ref = *ptr;断言(&ref == ptr); 解决方案 是的,这是正确的,并且永远正确. Reference 只不过是它所指类型的别名.它没有单独的存在,它总是与它所指的那个人联系在 ..
发布时间:2022-01-05 12:16:22 C/C++开发

指针和引用之间的低级区别是什么?

如果我们有这个代码: int foo=100;内部&参考 = foo;int* 指针 = &reference; 引用的数据和指针的数据没有实际的二进制差异.(它们都包含 foo 在内存中的位置) 第 2 部分 那么指针和引用之间的所有其他差异在哪里(在这里讨论)进来?编译器是否强制执行它们,或者它们实际上是汇编级别上的不同类型的变量?换句话说,以下是否产生相同的汇编语言? fo ..
发布时间:2022-01-05 12:16:12 C/C++开发

Java 参考和 C++ 参考有什么区别

所以我一直在想(在阅读这个 Java pdf 时)... 我知道这可能看起来很傻,但为什么我不能在 C++ 中做到这一点. float &f = new float; 这不是说f的引用是new float的地址吗? 在 Java 中,我看到类似这样的东西 String s = new String("something") String s 称为字符串引用. Java 中 ..
发布时间:2022-01-05 12:15:11 Java开发

C++ 引用、对象和指针之间的区别

这是 OOP 高级课程考试中的一道题,用 C++ 教授(在 TAU 大学,本学期): 问:C++ 指针和引用有什么区别? A. 引用是整个对象,而指针只是它的地址.B. 意思相同,区别仅在于语法和用法.C. 用于访问对象的语法.D. 指针是指向对象的简单地址,而引用使用虚拟表. 正确答案是什么? 课程老师声称 A 是正确的,并且对对象的引用实际上就是对象本身.那是对的吗?我意识 ..
发布时间:2022-01-05 12:14:23 C/C++开发

将引用转换为 C++ 中的指针表示

有没有办法在 C++ 中“转换"对指针的引用?在下面的例子中,func2 已经定义了原型,我不能改变它,但是 func 是我的 API,我想要么传递两个参数,要么传递一个(第二个设置为 NULL)或两者都不设置(都设置为 NULL): void func2(some1 *p1, some2 *p2);func(some1& obj, some2& obj2){func2(..);} 解决方案 ..
发布时间:2022-01-05 12:13:54 C/C++开发