pointer-arithmetic 相关问题

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

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

我已经看到,在 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

void* 与 char* 指针算术

我正在浏览我的教科书,我对其中的一些代码有点困惑。一方面,它们通过以下方式执行指针算术: 无效* bp; ... bp = (void*)((字符...

回答 2 投票 0

为什么 char 指针的大小是 8,但会增加一个字节?

void main() { 字符变量 = 10; char *ptr = &var; printf("自增前的指针地址:%p “,ptr); printf("sizeof(ptr):%d “,sizeof(ptr)); ptr++;...

回答 4 投票 0

如果 var 不是数组元素,写 (&var + 1) 的用例是什么?

最近从用户“chux”那里了解到,在不代表数组元素的地址上加1是合法的。具体来说,标准中有如下规定(C17草案,6.5……

回答 2 投票 0

共享内存的指针算法

我不明白以下几行到底发生了什么: unsigned char *membershipChanged = (unsigned char *)sharedMemory; float *clusters = (float *)(sharedMemory + blockDim.x); 我假设...

回答 1 投票 0

void* 指针算法,不能交换浮点值

最近,我很好奇 qsort() 如何在不传递特定类型的情况下进行排序,因此我试图在不知道/关心它的类型的情况下反转数组。 有人告诉我你可以做指针运算,如果你...

回答 2 投票 0

使用动态 float* 数组和动态矩阵匹配数据类型的问题

基本上,我将一些坐标保存在 2 个数组中,arrayX 和 arrayY。然后,我想更改保存在前面提到的坐标中的“空白”矩阵的值...

回答 1 投票 0

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