Это моя структура:Как преобразовать эту 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;
и сделал небольшую отладку самостоятельно и вуаля. Он решен.
Спасибо, всем.
Прежде всего в C++ вы должны избегать указателей. Вы можете жить очень счастливо и делать очень хорошие программы без указателей. Во-вторых, если вы хотите создать массив во время выполнения, вместо этого вы должны использовать 'std :: vector'. –
@LPs Он преобразует C в C++, это редкий случай, когда оба тега действительны. – Borgleader
@Borgleader Между тем удалено;) – LPs