将指针传递给函数

时间:2014-08-06 05:51:42

标签: c pointers

我有一个数据类型,我试图将此数据类型传递给另一个函数:

#include <stdio.h>
static const int a[]= { 4, 5, 6, 7};

void call_func2(const int *c) {
    const int *d;
    d = c;
}

void func1() {
    const int *b;
    b = a;
    call_func2(b); // it would be also good, if i can directly pass a[] to call_func2
}

int main(void) {
    func1();
    return 0;
}

1 个答案:

答案 0 :(得分:1)

阅读你的MCVE,很容易看出问题是什么(将来,请在问题中包含该代码而不是链接到它):你正在传递指向常量数据的指针采用非常量指针的函数。

如果强制转换指针,可以将指向常量数据的指针传递给采用非常量指针的函数。但要注意它可能导致undefined behavior