我有一個巨大的C工程。 現在我需要一個C++函數來填充一些變量。在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分配了內存。 – Trikolix