我有一个设备需要将结构指针传递给分配函数,如:
int main(){
snd_pcm_hw_params_t* params;
snd_pcm_hw_params_alloca(¶ms);
}
我想将他们的分配函数包装到我自己的函数中,如下所示:
int main(){
snd_pcm_hw_params_t* params;
init_device*(¶ms);
}
void init_device(snd_pcm_hw_params_t** params){
snd_pcm_hw_params_alloca(params);
}
然而,这样做会产生分段错误。我做错了什么,或者它可能是提供给我的分配功能所固有的?
答案 0 :(得分:2)
我做错了什么,
是。 init_device*(¶ms);
看起来代码正在使用函数地址init_device
并将其乘以params
的地址。然后折腾产品。函数init_device()
未被调用。
*
和简单通话
init_device(¶ms);
在调用函数之前声明/定义函数。
void init_device(snd_pcm_hw_params_t** params);
int main(){
snd_pcm_hw_params_t* params;
init_device(¶ms);
}
请务必启用所有编译器警告以节省时间。