memcpyでアクセス・バイオレーションって?! – プログラミング – Home

memcpyでアクセス・バイオレーショ...
 
通知
すべてクリア

memcpyでアクセス・バイオレーションって?!


Tabro
 Tabro
(@Tabro)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

MFC込みでVC++6で使っています。

コンパイル・リンクは通ったものの、
memcpy( ((char*)pPbBuffer+nPbBufferPos), lp->lpData, lp->dwBytesRecorded);
と言うコマンドでアクセスバイオレーションでハングです。

VOID LoadDataBlock(WAVEHDR* lp);と言うlpと言う変数の定義付けも含めて、
この当たりはそっくり、そのまま他の関数から既に実行時通ったものを持って来ているのに。
ハンドルされていない例外はXXX.C(WDMAUD.DRVにあります。)0XC000005 
ACCESSVIOLATIONとのこと。

ウオッチで見ると、
((char*)pPbBuffer+nPbBufferPos)は読めているものの、
lpそのものや、
lp->lpData、lp->dwBytesRecordedは
CXX0017: Error: シンボル lp が見つかりません
と言うことdで値が表示されません。

どうすればいいのでしょうか?


引用解決済
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

lpの値が不正なんでしょう。
関数呼び出し前の値から不正だったりしませんか?

とりあえず,memcpyが問題を持っていないのは確かです。


返信引用
駄犬
 駄犬
(@駄犬)
ゲスト
結合: 23年前
投稿: 59
 

アクセスバイオレーションの意味を調べましょう。
プログラマー的発想を身に付けましょう。(←書いている本人も耳がイタイ)


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

領域侵害
例)5バイトしか確保していないところに10バイトコピーしようとしていませんか


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました