c - 将指针传递给函数异常

标签 c function pointers pass-by-value

为什么下面程序的输出是0x0

BYTE n_buffer[4] = { 1, 2, 3, 4};

int GetElement(BYTE *pElement, DWORD dwIndex)
{
    pElement = &n_buffer[dwIndex];
    return SUCCESS;
}

int main()
{
    BYTE *res2 = NULL;
    GetElement(res2, 3);
    printf("0x%X\n", res2);
}

最佳答案

你不返回任何指针,我的猜测是你想传递指针的地址并为其赋值

int GetElement(BYTE **pElement, DWORD dwIndex)
{
 *pElement = &n_buffer[dwIndex];
 return SUCCESS;
}

尝试画出指针及其指向的位置,并阅读更多关于指针的内容。

关于c - 将指针传递给函数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960819/

相关文章:

c++ - 映射到方法 c++11

计算多维数组第一维

c - Int 数组到 strtol 的字符串

c - 读取文件并存储到变量中

c - 分析gdb反汇编

将 float 转换为 int 指针并返回 float?

c - 是否仍然可以通过指针寻址数组的各个元素?

c++ - C++ 中 lambda 和常规函数的不同堆栈深度?

c++ - 用函数指针初始化另一个类中的对象指针

c - C 中指向单链表指针的指针