c - 函数内部的指针操作

标签 c pointers

假设我有一个指向内存的指针

0x10000000

我想添加它以便它遍历内存,例如:

0x10000000 + 5 = 0x10000005

我如何在函数内执行此操作?我如何传入指针指向的地址,并在函数内部向其添加 5,然后在函数完成后,我可以使用该值?

最佳答案

您有两个选择:

  1. 该函数可以返回更新后的指针。

    char *f(char *ptr) {
        ptr += 5;
        return ptr;
    }
    

调用者然后执行:

    char *p = some_initialization;
    p = f(p);
  • 函数参数可以是指向指针的指针,它通过以下方式间接访问:

    void f(char **ptr_ptr) {
        *ptr += 5;
    }
    
  • 调用者然后执行:

        char *p = some_initialization;
        f(&p);
    

    关于c - 函数内部的指针操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32979898/

    相关文章:

    c - 为什么这段 C 代码会崩溃?

    c++ - c++ 函数指针的用法

    c - 为什么在函数调用中找不到指针数组的大小?

    c - 读取 csv 文件并存储在缓冲区中时出现问题

    c - 将未初始化的值解析为函数

    C++调用静态函数指针

    c++ - realloc 在调整数组大小的特定索引大小后抛出错误

    c - 如何从 C 中的 Unix 终端获取输入文件名?

    C - 锯齿波的傅立叶变换级数

    c - 将数组排列成所有可能的对