将字符串指针传递给C ++中的结构(续)

时间:2014-02-11 05:49:59

标签: c++ string pointers struct

这是这个问题的延续,一些不错的人已经帮助过我:Passing a string pointer to a struct in C++

我正试图通过string将各种Struct传递给pointer的成员,但我做的事情从根本上是错误的。我认为它不需要被解除引用。以下流程适用于其他类型的数据,例如intchar。例如:

typedef struct Course{
    string location;
    string course;
    string title;
    string prof;
    string focus;
    int credit;
    int CRN;
    int section;
}Course;


void c_SetLocation(Course *d, string location){
    d->location = location;
    . . .
}

当我尝试编译以下算法来初始化Course

时出错
    void c_Init(Course *d, string *location, ... ){
        c_SetLocation(d, &location);
        . . .

    }

错误:

error: cannot convert ‘const char*’ to ‘std::string* or argument ‘2’ to ‘void c_Init

2 个答案:

答案 0 :(得分:0)

更改

void c_Init(课程* d,字符串*位置,...){         c_SetLocation(d,& location);         。 。

}

void c_Init(课程* d,字符串位置,...){         c_SetLocation(d,location);         。 。

}

没有理由为位置传递指针。

答案 1 :(得分:0)

*location; //this is de-referencing
&location; //this is address of a variable (pointer to a variable)

因此,为了将字符串传递给c_SetLocation,您应该取消引用它:

 void c_Init(Course *d, string *location, ... ){
    c_SetLocation(d, *location);
    . . .
}