我得到语法错误和缺少类型

时间:2010-12-11 16:19:07

标签: c++

 #include "MyArrayList.h"

 MyArrayList::MyArrayList()
 {
size = 0;   
 }

 NODE* MyArrayList::list_create(void *data)
 {
NODE *node;
if(!(node=malloc(sizeof(NODE))))
    return (NODE*)NULL;
node->data=data;
node->next=NULL;
return node;
}

NODE *MyArrayList::list_add(NODE *node, void *data)
{
    NODE *newnode;
    newnode=list_create(data);
    newnode->next = node->next;
    node->next = newnode;
return newnode;
}

开启

  NODE* MyArrayList::list_create(void *data)
 {


 NODE *MyArrayList::list_add(NODE *node, void *data)
{

myarraylist.cpp(8):错误C2143:语法错误:缺少';'在'*'之前

myarraylist.cpp(8):错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int

myarraylist.cpp(8):错误C2065:'data':未声明的标识符

myarraylist.cpp(8):错误C2761:'MyArrayList :: NODE * MyArrayList :: list_create(void *)':不允许成员函数重新声明

myarraylist.cpp(8):致命错误C1903:无法从之前的错误中恢复;停止编译

它是一个链表

1 个答案:

答案 0 :(得分:0)

你不应该在C ++中使用NULL,而是0.并且你不需要转换空指针:任何指针类型都可以指向null。如果你能避免这些,你不应该在C ++中使用void指针。实际上,如果可以避免使用原始指针,则不应使用原始指针。如果可以使用malloc(),则不应在C ++中使用new。也就是说,如果赋值的左侧不是malloc()指针,则必须转换void的返回值:

node = (NODE*)malloc(sizeof(NODE))