매우 이상한 g ++ 문제가 발생했습니다.gdb에서 sizeof (Apple :: record_)가 0입니다. 하지만 잘 돌아갑니다.
흐르는 프로그램의 출력은 "24 8 3"이며, 모든 것이 괜찮은 것처럼 보입니다. 하지만 gdb를 사용하여 sizeof (Apple :: record_)를 출력하면 0이됩니다. gcc 버전은 4.5.2 (GCC) (MinGw)이고 gdb 버전은 GNU gdb (GDB) 7.3입니다. 아무도 도움을 줄 수 있습니까? 나 ??
#include <iostream>
using namespace std;
struct Record {
int age;
const char* name;
};
struct Apple {
static Record record_[];
};
Record Apple::record_[] = {
{ 18, "liming i love apple" },
{ 19, "liming" },
{ 20, "liming a y z o pq x y z o o o " } };
int main() {
cout << sizeof(Apple::record_) << " " << sizeof(Apple::record_[0]) << " "
<< sizeof(Apple::record_)/sizeof(Apple::record_[0]) << endl;
return 0;
}
죄송합니다. 질문을 잘못 읽었습니다. 그래서 나는 내 대답을 지웠다. – Mysticial