-2

すべての人が 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;
}

*編集: *申し訳ありませんが、デバッガーがあることすら知りませんでした。失礼なことや思いやりを欠くつもりはありませんでした。std::cout で始まる 12 行目と 13 行目が原因であるとのことです。問題が何であるかわかりません。

4

2 に答える 2

2

null ポインター逆参照。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
于 2012-03-04T00:40:03.350 に答える
0

ドキュメントから:

const PaDeviceInfo* Pa_GetDeviceInfo ( PaDeviceIndex device )

PaDeviceInfo指定されたデバイスに関する情報を含む構造体へのポインターを取得します。

戻り値:PaDeviceInfo不変の構造体 へのポインター。デバイス パラメータが範囲外の場合、関数は を返しますNULL

NULLポインターを逆参照する前に確認するのを忘れました。おっとっと。

于 2012-03-04T00:46:42.117 に答える