pointer-arithmetic 相关问题

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

是否允许将零添加到空指针?

我知道空指针不允许使用指针算术。但是想象一下我有这样的东西:class MyArray {int * arrayBegin; //指向第一个数组项的指针,对于空数组为NULL ...

回答 1 投票 2

已知大小的未指定类型的指针算术

void * ptr = NULL; //未指定的13字节类型的数组,用于(int i = 0; i <10; i ++){printf(“%i”,((char(*)[13])ptr)+ i); } putchar('\ n');输出:0 13 26 39 52 65 78 91 104 117 So ...

回答 4 投票 -5

在c ++中使用指针算法

不知道数组的大小时,如何显示字符数组中的最后一个字符?数组*('\ 0'-1)可以工作吗?

回答 1 投票 0

C ++指针算法:对齐异常(0x801)

我有一个非常奇怪的对齐异常,仅在某些硬件组合上才会发生。我已经实现了一个蓝牙音频接收器,该音频接收器的数据从unix文件描述符中获取。当我...

回答 1 投票 0

非数组对象类型的单尾指针可以吗?

这是有效的C ++吗? int main(){int i = 0; int * pi =&i; ++ pi;我知道数组类型允许使用单尾指针,但是在这种情况下我不确定。该代码是否......>

回答 1 投票 5

NULL + int的结果是什么?

我已经在OpenGL VBO实现中使用了以下宏:#define BUFFER_OFFSET(i)((char *)NULL +(i))// ... glNormalPointer(GL_FLOAT,32,BUFFER_OFFSET(x));您能提供一个...

回答 4 投票 19

使用指针算法将数组的元素更改为用户输入

我正在尝试向用户询问3个不同的字符串,如果第二个字符串是第一个字符串的一部分,它将用第三个字符串替换该部分。除此之外,我必须使用指针...

回答 1 投票 0

减去或向大数组添加常数

我有一个很大的uint8_t数组(大小= 1824 * 942)。我想对每个元素执行相同的操作。特别是我需要从每个元素中减去-15。每秒刷新此数组20次,...

回答 4 投票 3

减去常数或将常数添加到大数组c ++

我有一个很大的uint8_t数组(大小= 1824 * 942)。我想对每个元素执行相同的操作。特别是我需要从每个元素中减去-15。每秒刷新此数组20次,...

回答 2 投票 1

通过指针算法访问结构数据成员

如果我有一个简单的张量类,例如struct Tensor {double XX,XY,XZ; YX,YY,YZ的双倍;双ZX,ZY,ZZ; }使用指针算术(请参见下文)对...

回答 2 投票 1

数组语法VS指针的语法和代码生成?

在该书中, “了解和用C指针” 由Richard里斯它说85页,INT矢量[5] = {1,2,3,4,5};由向量[I]所产生的代码是从由*生成(的代码不同...

回答 8 投票 54

指针运算的结构

由于包含一张双人床和3个int变量(4个变量在所有),如果p是一个指针,这个结构与值0x1000的一个结构的定义,并p ++有什么价值?这不是一门功课......

回答 5 投票 13

减去数组中的内存地址,但它给出了实际的数字

我试图减去数组中两个元素的两个内存地址,称为nums,我有这个:cout <<减去内存地址:<<(&nums [50]) - (&nums [0]); ......

回答 2 投票 -1

将shared_ptr设置为new_pointer,即old_pointer + offset

这是一个智能指针:std :: shared_ptr p(new char [size])表示填充原始二进制文件内容的数组。在整个数组从文件复制到RAM之后(仅在之后),我...

回答 1 投票 30

实现矩阵差异的函数

我有以下函数打印矩阵:void printMat(int * mat,int size){int i; for(i = 0; i <size; i ++)printf(“%d”,mat [i]);的printf( “\ n”);现在,假设......

回答 2 投票 0

在C ++中,指针算法的a + i和&a [i]有什么区别?

假设我们有:char * a; int i;许多C ++的介绍(像这一个)表明rvalues a + i和&a [i]是可以互换的。我天真地相信这几十年,直到我......

回答 2 投票 9

指针算术和继承导致未定义的行为

运行我的程序时,它在执行cout <时终止 name()第二次。在研究了这个问题之后,我了解到在这种情况下指针算术会导致问题。 ...

回答 3 投票 1

(p + x)-x总是在gcc linux x86-64 C ++中为指针p和整数x产生p

假设我们有:char * p; int x;正如最近在另一个问题中讨论的那样,包括对无效指针的比较操作的算法可能会在gcc linux x86-64 C ++中产生意外行为。 ...

回答 3 投票 -3

如果ap是一个指针,为什么我可以通过ap [i]来引用它的值?

class Vektor {private:double * ap; int len; public:Vektor():ap(0),len(0){} Vektor(int n):len(n){ap = new double [n]; } double&front(){return ap [0];双...

回答 1 投票 1

自定义分配器没有指针算术

我有一个自定义分配器类,看起来像这样:class allocator {private:char * memory; std :: ptrdiff_t offset; std :: size_t total_size; public:allocator(std :: size_t size):...

回答 1 投票 1

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