整了一个链表类。。
struct listStruct
{listStruct* next;};
class list
{
.........
private:
listStruct * headOfList, * currNode;
};
在向链表添加新元素的时候出了问题
stuScore是一个包含string类型成员的类
原来用只有普通数据成员的类也用此法没有问题。。。
应该是浅拷贝的问题吧?但不知道怎么解决
listStruct* list::addNode(stuScore* data,unsigned int datSize)
{
listStruct* tmp=headOfList;
stuScore* pdat;
headOfList=(listStruct*)malloc(datSize+sizeof(listStruct));//新表头地址
pdat=(stuScore*)(tmp+1);//对应数据空间地址
memcpy(pdat, data, datSize);//复制数据到此空间
headOfList->next=tmp;//原表头地址成为下一位
return headOfList;//返回新表头地址
}
后来查了下书说要用new来申请内存空间,但不知道怎么申请一个没有特定类型大小为datSize+sizeof(listStruct)的连续空间。。。。。
先谢了!!!

struct listStruct
{listStruct* next;};
class list
{
.........
private:
listStruct * headOfList, * currNode;
};
在向链表添加新元素的时候出了问题
stuScore是一个包含string类型成员的类
原来用只有普通数据成员的类也用此法没有问题。。。
应该是浅拷贝的问题吧?但不知道怎么解决
listStruct* list::addNode(stuScore* data,unsigned int datSize)
{
listStruct* tmp=headOfList;
stuScore* pdat;
headOfList=(listStruct*)malloc(datSize+sizeof(listStruct));//新表头地址
pdat=(stuScore*)(tmp+1);//对应数据空间地址
memcpy(pdat, data, datSize);//复制数据到此空间
headOfList->next=tmp;//原表头地址成为下一位
return headOfList;//返回新表头地址
}
后来查了下书说要用new来申请内存空间,但不知道怎么申请一个没有特定类型大小为datSize+sizeof(listStruct)的连续空间。。。。。
先谢了!!!

