我知道不是每个人都使用过PortAudio API,但也许你可以在这里找到它。
#include <iostream>
#include <math.h>
#include "portaudio.h"
int main() {
PaDeviceIndex outputDevice;
PaDeviceIndex deviceCount;
outputDevice = Pa_GetDefaultOutputDevice();
deviceCount = Pa_GetDeviceCount();
const PaDeviceInfo * outputDeviceInfo;
outputDeviceInfo = Pa_GetDeviceInfo(outputDevice);
std::cout << "Name of default output device: " << outputDeviceInfo->name << std::endl;
std::cout << "Struct version: " << outputDeviceInfo->structVersion << std::endl;
return 0;
}
* 编辑:* 对不起伙计们,我甚至不知道有调试器。我并不是想要粗鲁或不体贴。它说这是由第12和第13行引起的,那些是以std :: cout开头的。我不明白这是什么问题。
答案 0 :(得分:2)
空指针取消引用。 Pa_GetDeviceInfo
返回一个空指针。
Program received signal SIGSEGV, Segmentation fault.
0x080487f4 in main () at pa.cpp:12
12 std::cout << "Name of default output device: " << outputDeviceInfo->name << std::endl;
(gdb) print outputDeviceInfo
$1 = (const PaDeviceInfo *) 0x0
答案 1 :(得分:0)
const PaDeviceInfo* Pa_GetDeviceInfo ( PaDeviceIndex device )
检索指向
PaDeviceInfo
结构的指针,该结构包含有关指定设备的信息。<强>返回:强> 指向不可变
PaDeviceInfo
结构的指针。如果设备参数超出范围,则函数返回NULL
。
在取消引用指针之前,您忘记检查NULL
。糟糕。