Присвойте постоянный символ массиву символов внутри структуры в VC ++ - PullRequest
1 голос
/ 02 июня 2011

Мне нужна структура связанного списка в моем приложении 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] ...

это может быть небольшой проблемой, но я очень новичок в использовании структур данных ....

Ответы [ 2 ]

4 голосов
/ 02 июня 2011

После того, как вы использовали new для выделения памяти для структуры.

var = new xml_data;

Используйте strcpy для копирования одного в другое.

strcpy(var->file_name,abc);

include <cstring> иубедитесь, что в пункте назначения достаточно места.

1 голос
/ 02 июня 2011

xml_data::file_name является массивом и не модифицируется .Он всегда придерживался &file_name[0] (адрес 1-го элемента).

В максимуме вы можете скопировать содержимое указателя в этот массив, используя strcpy / strncpy / memcpy или эквивалентный ему.

...