我有一个数据类型,我试图将此数据类型传递给另一个函数:
#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;
}
答案 0 :(得分:1)
阅读你的MCVE,很容易看出问题是什么(将来,请在问题中包含该代码而不是链接到它):你正在传递指向常量数据的指针采用非常量指针的函数。
如果强制转换指针,可以将指向常量数据的指针传递给采用非常量指针的函数。但要注意它可能导致undefined behavior。