[解決済み] C++読み取りアクセス違反エラー
2022-02-09 08:33:45
質問内容
現在、"0xC0000005が表示されています。Access violation reading location 0xcccccce0." エラーが発生し、問題を診断しようとしましたが...私が定義した3の法則が作用して、私をここに導くときに問題が発生すると思います。
size_type size() const
{ // return length of sequence
return (this->_Mysize); <---------------------this line
}
実は全く問題がないとは言い切れず、何日もくよくよしています。
以下、私のルールオブスリー
ArrayStorage::ArrayStorage(){
myArray = new string[7079];
}
ArrayStorage::~ArrayStorage(){
delete[] _data;
delete[] myArray;
}
ArrayStorage::ArrayStorage(const ArrayStorage &A) {
_size = A.size();
_data = new string [size()];
for (int i = 0; i < size(); ++i)
_data[i] = A[i];
}
ArrayStorage& ArrayStorage::operator=(const ArrayStorage &A){
if (this != &A) {
delete [] _data;
_size = A.size();
_data = new string [A.size()];
for (int i = 0; i < size(); ++i) {
_data[i] = A[i];
}
}
return *this;
}
const string& ArrayStorage::operator[](int i) const{
assert((i >= 0) && (i < size()));
return _data[i];
}
string& ArrayStorage::operator[](int i){
assert((i >= 0) && (i < size()));
return _data[i];
}
解決方法は?
msvcでコンパイルした場合、未初期化の場合、スタック変数は0xCCバイトで埋め尽くされます。つまり、0xcccccce0は、おそらくスタック上の未初期化のポインタ変数とオブジェクト構造体の_MySizeオフセットの結果だと思われます。
関連
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] C++でifstreamを使用してファイルを一行ずつ読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】Enterキーを押して続行する
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む