У меня есть класс с переменной-членом wchar_t m_var[MAX_PATH];
Я пытаюсь вернуть его, используя перегруженный оператор wchar_t* operator()()
. Также попробовал const wchar_t*
на всякий случай. Внутри есть просто return m_var;
, но, к сожалению, я всегда получаю нарушение прав на чтение.
Когда я просто пишу MyClass.m_var, он работает отлично.
Я получаю эту ошибку через код printf("%ws", MyClass);
, но не printf("%ws", MyClass.m_var);
#include <cstdio>
class MyClass {
public:
MyClass() { random_op(); }
~MyClass() {}
void random_op() {
for(int i = 0; i <= 11; i++) {
m_var[i] = 'A';
}
m_var[12] = '\0';
}
wchar_t* operator()() { return m_var; }
wchar_t m_var[255];
};
int main() {
MyClass c;
printf("%ws", c);
}
Почему это происходит?