【发布时间】:2016-06-16 23:39:15
【问题描述】:
我有一个巨大的 C 项目。 现在我需要一个 C++ 函数来填充一些变量。
将函数声明为 extern "C",从 C 项目调用函数没有问题。
问题是,我需要将指针传递给 C++ 函数,并且在函数中,我想为指针赋值。 但正是在这一点上,程序因“分段错误”而崩溃。
有没有办法让它工作?还是说在 C 和 C++ 之间不能以这种方式使用指针?
在 C 中将函数作为线程调用:
Restwo = pthread_create(&num, NULL, (void *) function, &var);
标题
#ifdef __cplusplus
extern "C"
{ // Dies sorgt dafür, dass der Header sowohl in C als auch in C++ funktioniert
#endif
int function(int *pITS);
#ifdef __cplusplus
}
#endif
C++ 函数
extern "C" {
int getNewLsaSignals(int *var) {
printf("Successfully started\n"); //works
var = 19; //doesn't work
//insert some c++ code here
}
}
【问题讨论】:
-
你还需要确定你实际上是为
var分配内存。 -
实际上变量是一个复杂的结构体,它已经被数据填充了。在 extern C++ 函数中,我只想更改这些值。所以已经为 var 分配了内存。
标签: c++ c function pointers extern-c