이 내 구조 :이 C 라인을 해당 C++로 변환하는 방법?
struct HashTable{
int tsize;
int count; //No. of elements in table
struct HashTableNode **Table;
};
그리고 이것은 내가 뭘하려고 오전입니다 :
struct HashTable *h=(struct HashTable *)malloc(sizeof(struct HashTable));
if(!h) return NULL;
h->tsize=size/LOAD_FACTOR;
h->count=0;
h->Table=(struct HashTableNode**)malloc(sizeof(HashTableNode *)*h->tsize);//this line
을 나는 새 연산자를 사용하여 해당 C++ 버전으로 마지막 줄을 변환 할 수없는 오전
해결됨
이 코드를 다음으로 변경했습니다.
h->Table=new HashTableNode*[h->tsize];
for(int i=0;i<h->tsize;i++)
h->Table[i]=new HashTableNode;
그리고 약간의 디버깅을 혼자서 해 보았습니다. 그것은 해결되었습니다.
감사합니다.
먼저 ++는 포인터를 피해야한다
사용 형식 정의 지정자는 유형을 정의합니다. 당신은 매우 행복하게 살 수 있고 포인터없이 아주 좋은 프로그램을 만들 수 있습니다. 둘째, 런타임에 배열을 생성하려면 대신'std :: vector'를 사용해야합니다. –
@LP 그는 C를 C++로 변환 중입니다. 두 태그가 모두 유효한 경우는 거의 없습니다. – Borgleader
@ Borgleader 한편 삭제됨) – LPs