有没有办法将常量结构的浅拷贝复制到非常量结构?
Is there a way to make a shallow copy of a constant struct to a non-constant struct?
我想对具有恒定减速的整个结构进行浅拷贝。但我希望我正在复制的结构也不是常量。
这是我到目前为止所做的,但产生了错误:
struct Student{
char *name;
int age;
Courses *list; //First course (node)
}Student;
void shallowCopy(const Student *one){
Student oneCopy = malloc(sizeof(one));
oneCopy = one; <--------------- ERROR POINTS TO THIS LINE
}
我得到的编译器错误:
Assignment discards 'const' qualifier from pointer target type.
我知道我可以从一个中删除 const
或将 const
添加到 oneCopy
,但我想知道是否有办法在其中进行浅拷贝Student one
是 const
而副本 Student oneCopy
不是的特定情况。
应该是:
Student* oneCopy = malloc(sizeof(*one));
*oneCopy = *one;
因为你想分配结构,而不是指针。
我想对具有恒定减速的整个结构进行浅拷贝。但我希望我正在复制的结构也不是常量。
这是我到目前为止所做的,但产生了错误:
struct Student{
char *name;
int age;
Courses *list; //First course (node)
}Student;
void shallowCopy(const Student *one){
Student oneCopy = malloc(sizeof(one));
oneCopy = one; <--------------- ERROR POINTS TO THIS LINE
}
我得到的编译器错误:
Assignment discards 'const' qualifier from pointer target type.
我知道我可以从一个中删除 const
或将 const
添加到 oneCopy
,但我想知道是否有办法在其中进行浅拷贝Student one
是 const
而副本 Student oneCopy
不是的特定情况。
应该是:
Student* oneCopy = malloc(sizeof(*one));
*oneCopy = *one;
因为你想分配结构,而不是指针。