0

所以我有一个结构,我A用该结构数据类型初始化了一个变量,然后我输入了一些值。但是现在我需要将这些值放入另一个B具有相同结构数据类型的变量中。我怎么能做到这一点?

struct s_Especialidade{
    int id;
    char nome[60];  
    char descricao[60];
    struct s_Especialidade *proximo;
}; 
typedef struct s_Especialidade  Especialidade;

PESPECIALIDADE p, *array;
p->nome = &array[i]->nome; //THIS LINE GIVES THE ERROR
4

3 回答 3

1

由于它是一个字符数组,因此您需要复制数组的每个元素。

strcpy(p->nome, array[i]->nome)会这样做,但为了额外的安全性,请查看strncpy您可以在哪里设置最大长度以避免超限。

于 2013-06-18T00:18:01.873 回答
1

试试这样:

memcpy( p->nome, array[i].nome, 60 * sizeof(char) );

或者也概括类型,选择p->nome数组中使用的类型:

memcpy( p->nome, array[i].nome, 60 * sizeof(*(p->nome)) );

这是将数组复制到另一个数组(不仅适用于字符串)的通用且安全的方法。

于 2013-06-18T00:31:47.060 回答
0
于 2013-06-18T00:48:06.073 回答