如何将这一行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

我无法使用new操作符

将最后一行转换为等效的c++版本

解决它

我把代码改成了:

h->Table=new HashTableNode*[h->tsize];
for(int i=0;i<h->tsize;i++)
    h->Table[i]=new HashTableNode;

,我自己做了一点调试,瞧。问题解决了。

谢谢,每一个人。

显然我同意你问题下的大多数评论,但如果你真的需要在代码中使用指针,那么你的问题的解决方案可能如下所示:

使用typedef说明符定义类型:

typedef HashTableNode* PHashTableNode;

然后:

h->Table=new PHashTableNode[h->tsize];

最新更新