我是 C 新手。在下面的代碼中,我可能做錯了什么,因為在終端中我得到了Process returned -1073741819 (0xC0000005) execution time : 1.533 s
main.cpp
#include <iostream>
#include "foo.h"
int main() {
Baz* quuz;
quuz->quux();
return 0;
}
foo.h
#include <vector>
class Bar {
public:
bool boolean_val;
};
class Baz {
private:
std::vector<Bar> qux;
public:
void quux();
};
foo.cpp
#include "foo.h"
#include <iostream>
void Baz::quux()
{
qux[0].boolean_val = true;
}
你能否強調我做錯了什么?
uj5u.com熱心網友回復:
Baz* quuz;
quuz->quux();
在未初始化的指標上呼叫函式是不行的。
void Baz::quux()
{
qux[0].boolean_val = true;
}
跟隨未初始化的this指標訪問qux。呼叫了未定義的行為。你很幸運能撞車。0xC0000005 是訪問的未映射的記憶體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/463686.html
標籤:C
