typedef struct HugeInteger
{
int *digits;
int length;
} HugeInteger;
에서 typedef
는 HugeInteger
하게 struct HugeInteger
별명 그래서 HugeInteger->digits;
역 참조와 가변의 멤버 액세스되지 않는다 (이 struct HugeInteger
는 HugeInteger
유효 의미 정의. ++ C 전적으로 불필요) 유형을 역 참조하고 유형의 구성원에 액세스하려고 시도하고 있습니다. 변수가 없습니다. typedef
HugeInteger
없이
은 변수가 될 것입니다, 그래서 당신은
struct HugeInteger
{
int *digits;
int length;
} HugeInteger;
, 바로 문제를 해결할 것인가 생각하는 것? 타입과 같은 이름의 변수를 가지기 때문에 발생하는 인간 측 문제 외에도 변수 HugeInteger
은 포인터가 아니기 때문에 HugeInteger->digits;
구문이 여전히 유효하지 않습니다.
다른 측으로부터 접근하고 typedef
유지 OP는에서 (다음
HugeInteger * heeeeyuge;
와 같은 스토리지의 블럭을 보내고 이미 존재 할당 malloc
그것을 가리켜 heeeeyuge
에 스토리지를 할당해야 C) 또는 new
저장 블록 (C++)
OP는 포인터를 갖는 것이 원하는 것과 다르다는 것을 알 수 있습니다. 및
HugeInteger.digits
또는
HugeInteger heeeeyuge;
heeeeyuge.digits
충분합니다.
대상이 C의 ++ 인 경우
, 나는
struct HugeInteger
{
std::vector<int> digits;
};
대신 제안 할 수 있습니다? 자동 메모리 관리는 폭탄입니다.
C/C++의 객체 (인스턴스)와 유형은 완전히 다른 것입니다. – krzaq
'HugeInteger'는 타입입니다! 형식을 역 참조 할 수 없습니다. 성취하고자하는 것은 무엇입니까? 당신이 보여주는 것은 전혀 말이되지 않습니다. "당신이 줄 수있는 조언에 대해 미리 감사드립니다!" - 최선의 조언 : 책을 사서 언어를 배웁니다. – Olaf
그리고 언어는 C/C++입니다.** ** 다른 ** 언어 중 어느 것을 사용합니까? C 또는 C++? – Olaf