c/c++中的内存访问冲突问题
1.数组(内存)溢出
此处的数组指的就是一块已经分配的内存,而你要读取的数据却是超过了这部分内存的地方。
//将一个较大的值赋值给以个较小的区间 char buf[5]="This is a problem!" //数组下标的溢出 buf[7]=2;
2.句柄或指针在使用前被释放
此类情况目前还只在vc++中遇见,在声音还未结束播放的时候,提前清理了声音播放的数据,导致了错误退出
waveOutPrepareHeader(hwo, &wh, sizeof(WAVEHDR));//准备一个波形数据块用于播放 waveOutWrite(hwo, &wh, sizeof(WAVEHDR));//在音频媒体中播放第二个函数wh指定的数据 int wait_time = cnt / 4000 * 1000; Sleep(wait_time); //声音结束而清理数据的话会发生错误,sleep的时间小于了声音播放时间 waveOutUnprepareHeader(hwo, &wh, sizeof(WAVEHDR));//清理数据

浙公网安备 33010602011771号