C++ 在VC+中,将常量字符分配给结构内部的字符数组+;

C++ 在VC+中,将常量字符分配给结构内部的字符数组+;,c++,visual-c++,constants,C++,Visual C++,Constants,我想在我的VC++应用程序中使用链表结构 我的结构是:- struct xml_data { int id; char file_name[50]; char url_source[50]; struct xml_Data *next; }xml_data1; 如果我声明一个变量,比如 struct xml_data *var; const char* abc; 我想从const char*变量向结构成员分配一个值 我试着用 var->file_name

我想在我的VC++应用程序中使用链表结构

我的结构是:-

struct xml_data {
    int id;
    char file_name[50];
    char url_source[50];
    struct xml_Data *next;
}xml_data1;
如果我声明一个变量,比如

struct xml_data *var;
const char* abc;
我想从const char*变量向结构成员分配一个值

我试着用

var->file_name=abc;
但它给出了一个错误,无法将常量char*转换为char[50]


这可能是一个小问题,但我在使用数据结构方面非常新……

xml\u data::file\u name
是一个数组,不可修改。它总是粘贴到
&文件名[0]
(第一个元素的地址)


您最多可以使用
strcpy
/
strncpy
/
memcpy
或等效工具将指针的内容复制到该数组中。

xml\u data::file\u name
是一个数组,不可修改。它总是粘贴到
&文件名[0]
(第一个元素的地址)


在使用new为结构分配内存后,最多可以使用strcpy
strcpy
/
strncpy
/
memcpy
或等效工具将指针的内容复制到该数组中。

var = new xml_data;
使用strcpy将一个复制到另一个

strcpy(var->file_name,abc);

包括
,并确保目标中有足够的空间。

使用new为结构分配内存后

var = new xml_data;
使用strcpy将一个复制到另一个

strcpy(var->file_name,abc);

包括
并确保目的地有足够的空间。

char[50]是否总是足够?@AndréCaron如果文件名很短,当然可以:)YMMV@jonsca......i已声明类似于////xml\u data*var;的变量;。。。。。。。。这是不是错了,我需要一个指向xml的指针_data@abhinav不,你已经正确地申报了。如果您愿意,您可以在同一行中组合这两种数据,如
xml\u data*var=new xml\u data
@jonsca….Thnx我只是声明它是xml_data*var,而不是使用new这是我犯的错误,你帮了我…:)难道
char[50]
总是不够吗?@AndréCaron当然,如果文件名很短:)YMMV@jonsca......i已声明类似于////xml\u data*var;的变量;。。。。。。。。这是不是错了,我需要一个指向xml的指针_data@abhinav不,你已经正确地申报了。如果您愿意,您可以在同一行中组合这两种数据,如
xml\u data*var=new xml\u data
@jonsca…Thnx很多时候我只是声明它是xml_data*var,而不是使用new。这是我犯的错误,你帮了我……:)