我想在一个具有恒定减速度的整个结构上做一个浅拷贝。但我希望我复制的结构也不是常量。
到目前为止,我所做的就是产生错误:
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
不是$productinfo = array();
while($row = FETCH_DATA_FROM_SQL()) {
// assign it to variables here...?
$productinfo[] = array(
"Productname" => "$productname",
"StarRating" => "$starrating",
"AddedValue" => "$addedvalue",
"ProductImage" => "$image",
"TotalPrice" => "$totalprice",
"ProductLink" => "$link"
);
}
。
答案 0 :(得分:3)
应该是:
Student* oneCopy = malloc(sizeof(*one));
*oneCopy = *one;
因为你想分配结构而不是指针。