2011-06-02 27 views
1

我想在我的VC++應用程序中的鏈表結構分配常數的char字符數組內結構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; 

但它給了一個錯誤,它不能轉換爲const char *到char [50] ...

這可能是一個小問題,但我很新在使用數據結構....

回答

4

使用new爲結構分配內存後。

var = new xml_data; 

使用strcpy將一個複製到另一個。

strcpy(var->file_name,abc); 

包括<cstring>並確保在目的地有足夠的空間。

+0

總是不夠「char [50]」? – 2011-06-02 06:01:13

+0

@AndréCaron當然,如果文件名是簡短的:) YMMV – jonsca 2011-06-02 06:03:05

+0

@jonsca ......我已宣佈var像 ///// xml_data * var; ........這是錯誤的,我需要一個指向xml_data的指針 – abhinav 2011-06-02 06:06:45

1

xml_data::file_name是一個數組,並且是不可修改。它始終堅持&file_name[0](第一個元素的地址)。

最大可以使用strcpy/strncpy/memcpy或同等設置將指針的內容複製到該陣列中。