小编V.T*_*am.的帖子

作为函数参数的指针接收内存地址(C)

我写了一些代码:

#include <stdlib.h>
#include <stdio.h>

    int a_function(int *a, int a_length, int *returned_address)
    {
        returned_address=a+a_length-1;
        return 0;
    }

    int main(void)
    {
        int n=5;
        int *a;
        int *address=NULL;
        a=(int*)malloc(n*sizeof(*a));
        a_function(a,n,address);
        printf("%p",address);
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

预期的结果是指针'地址'指向a + 4地址处的内存块.但结果是指针"地址"仍指向NULL(屏幕上的打印结果类似于'00000000').但是,当我开始调试时,在'a_function'中,'returned_address'确实指向了+ 4的内存块.我错过了什么?

c pointers arguments function memory-address

0
推荐指数
1
解决办法
865
查看次数

标签 统计

arguments ×1

c ×1

function ×1

memory-address ×1

pointers ×1