pointer-arithmetic 相关问题

您可以对指针执行有限数量的算术运算。这些操作是:递增,递减,加法,减法,比较和赋值。

为什么我不能在 C++ 中使用指针更改常量的值?

我正在编写代码示例,演示如何使用 C++ 中的指针“搬起石头砸自己的脚”。 创建崩溃的代码很容易。但现在我正在尝试编写代码......

回答 1 投票 0

以字节为单位递增指针以索引跨步数组

我编写了一个库,其接口引用来自客户端的坐标数据。客户端需要提供一个点数组,每个点包含 3 个连续的浮点数。我决定使用 str...

回答 1 投票 0

使用指针数学通过指针访问二维数组:需要数组类型[Delphi]

我非常清楚 Delphi 中的指针数学应该特别小心地使用,但我仍然不明白我错在哪里。 我们来看看下面的类型定义: 计划项目26; {$

回答 1 投票 0

Delphi:对数组指针进行双重索引会导致“需要数组类型”错误

看一下下面的代码,其中数组指针被索引一次以获取数组,然后再次索引以获取元素。这个 c 风格的技巧应该在 {$POINTERMATH ON} 时起作用,但是它

回答 1 投票 0

使用 FOR 循环而不是使用 delete[] array_of_objects 关键字对堆中分配的对象数组使用删除运算符时出现问题

#包括 数组类 { 私人的: int *m_Arr; 整数我; 民众: 整数大小; ArrayClass() :大小(5)、i(0)、m_Arr(nullptr) { std::cout << "The

回答 1 投票 0

迭代多态对象数组

考虑以下代码: #包括 结构体 B { 字符我; B(字符 i) : i(i) {}; 无效栏(){}; }; 结构 D : B { 整数y; D(char i, int y) : B(i), y(y) {}; }; 沃...

回答 1 投票 0

指针的有效性如何与未初始化的指针值交互?

我已经看到,在 C 或 C++ 抽象机中,仅在内存中形成指向无效点的点的行为就是未定义的行为。 例如 int* arr = 新 int[10]; int* 最后 = arr + 9; // ...

回答 1 投票 0

下面的代码是有效的C吗? (空指针的指针算术)

我最近在阅读C标准ISO/IEC 9899:2018规范。其中,第6.5.6节(加法运算符)描述了对+运算符的约束。规则[8]说: 当一个表达式...

回答 1 投票 0

在 C 中取消引用指针时出现意外值

以下代码 #包括 int main() { 长长数据 = 0xFFFEABCD11112345; char *pData = (char *)&data; printf("地址 %p 处的值为 %x “,pData,*...

回答 1 投票 0

对从分配器返回的指针进行指针算术是否格式良好?

我知道这个问题过去已经被问过并得到了一些回答。 然而,我对一个尚未弄清楚的细节有疑问(或者至少我找不到质量保证)。

回答 1 投票 0

为什么指针减法会产生与指向的值无关的数字?

#包括 无效主(){ int arr[] = {10,20,30,40}; int *p1 = arr; int *p2 = &arr[2]; printf("%d",p2-p1); } 输出:2 看到输出我很惊讶...

回答 3 投票 0

为什么下面的指针程序的输出为2?

#包括 无效主(){ int arr[] = {10,20,30,40}; int *p1 = arr; int *p2 = &arr[2]; printf("%d",p2-p1); } 输出:2 看到输出我很惊讶...

回答 1 投票 0

8051汇编中DPTR算法的问题

我们在 8051 汇编中的固件项目遇到问题。它用于嵌入式系统,现在需要适应硬件的变化。它包含一个按顺序读取位的子例程...

回答 1 投票 0

针对损坏的指针分配的“最佳”调试策略

我有一个我认为是类类型“A”的类对象,我希望 A 没有损坏(我知道类模板,我只是还不能 100% 确定模板参数)。 现在,...

回答 1 投票 0

我可以使用不带alignof的指针算术在结构体中相同类型的连续字段序列之间移动吗?

我知道还有其他类似的问题。我已阅读这些内容,但认为这个问题尚未得到解答。 我可以在连续的(声明序列中连续的)之间移动吗

回答 1 投票 0

为什么我无法增加我的类属性? [重复]

我想在初始化后增加 self.next 。这样,如果 var.next = 5 并且我执行了 var.incr,则 var.next = 6 重要的是这个程序只使用内置的 python 函数作为我的 e...

回答 1 投票 0

解释以下 C 代码片段的输出?

我无法弄清楚为什么这段代码会给出这样的输出。请有人演练它。 #包括 无效主(){ int a[2][2] = { {1,2},{3,4} }; int(**p)[2]; p = a; ...

回答 1 投票 0

如何增加指针地址和指针值?

让我们假设, 整数*p; 整数a=100; p = &a; 下面的代码实际上会做什么以及如何做? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); 我知道,这有点混乱......

回答 5 投票 0

无条件创建指向向量最后一个元素的指针合法吗?

我有以下C++代码: 空栏(int&); 无效巴兹(); void foo(std::vector& v) { int* 指向最后一个的指针 = v.data() + (v.size() - 1); if (v.size() > 0 && *

回答 2 投票 0

正确使用类型双关和擦除对象数组

我的目标是拥有一个用于存储对象数组的内存池非模板类。 相同的内存池对象必须可重用于不同的数组(不同大小、不同类型和/或

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.