有没有办法将常量结构的浅表副本复制到非常量结构中?

时间:2016-02-15 00:26:09

标签: c struct const shallow-copy

我想在一个具有恒定减速度的整个结构上做一个浅拷贝。但我希望我复制的结构也不是常量。

到目前为止,我所做的就是产生错误:

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 oneconst而副本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" ); }

1 个答案:

答案 0 :(得分:3)

应该是:

Student* oneCopy = malloc(sizeof(*one));
*oneCopy = *one;

因为你想分配结构而不是指针。