0x00ea17b2 处有未经处理的异常: 0xC0000005: 写入位置 0x00000000 时发生访问冲突

ZYX090206 2016-10-03 12:03:14
windows下的音频采集:
每次运行到这里就报这个错,一直不清楚是哪里出问题了,大家帮忙看看

...全文
510 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-10-10
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
小灸舞 2016-10-10
  • 打赏
  • 举报
回复
0xC0000005: 写入位置 0x00000000 靠近0的地址,一般都是空指针解引用了 0xC0000005: 写入位置 0xXXXXXXXX 比较大的地址,一般都是一些无效的指针
ZYX090206 2016-10-03
  • 打赏
  • 举报
回复
谢谢,解决了。是没有给wave1分配内存。
paschen 版主 2016-10-03
  • 打赏
  • 举报
回复
检查你wave1指针是否有效
ZYX090206 2016-10-03
  • 打赏
  • 举报
回复
图片看不清楚,把代码贴出来: WAVEINCAPS waveIncaps; MMRESULT mmResult=waveInGetDevCaps(0,&waveIncaps,sizeof(WAVEINCAPS)); printf("\n音频输入设备:%s\n",waveIncaps.szPname); if (MMSYSERR_NOERROR==mmResult) { pSaveBuffer=(PBYTE)malloc(1); pBuffer2=new BYTE[bufsize]; pBuffer3=new BYTE[bufsize]; pBuffer4=new BYTE[bufsize]; pBuffer5=new BYTE[bufsize]; pBuffer6=new BYTE[bufsize]; pBuffer1=(PBYTE)malloc(16384); //WaveInitFormat(&pwfx,1,8000,8);//声道数、每秒采样数、每秒平均的字节数、每秒采样值的位数 WaveInitFormat(&pwfx,1,11025,8); printf("\n请求打开音频输入设备"); printf("\n采样参数:单声道 8kHz 8bit\n"); //mmResult=waveInOpen(&phwi,WAVE_MAPPER,&pwfx,(DWORD)(MicCallback),NULL,CALLBACK_FUNCTION); if (waveInOpen(&phwi,WAVE_MAPPER,&pwfx,(DWORD)(MicCallback),NULL,CALLBACK_FUNCTION)) { printf("打开错误"); } wave1->lpData=(LPSTR)pBuffer1; wave1->dwBufferLength=16384; wave1->dwBytesRecorded=0; wave1->dwUser=0; wave1->dwFlags=0; wave1->dwLoops=1; wave1->lpNext=NULL; wave1->reserved=0; waveInPrepareHeader(phwi,wave1,sizeof(WAVEHDR));

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧