如何将数组元素传递给结构?

时间:2013-02-28 09:36:46

标签: c

我正在努力学习C.我创建了这个结构,我试图将现有数组中的名称传递给结构元素名称之一[100],我无法理解如何传递它?伙计们请帮助我并指导我如何做到这一点。如果有人可以指导我一个好的结构教程(网上有很多,但只有基础知识),那将是一个很大的帮助...谢谢。

typedef struct new_st{

        char name[100];

        int icon_number;

        float calculation;

        }var;

char arr_name[] = {“name1”,  “name1”,  “name1”,  “name1” };/this lines throws error


int main(){

var *ptr_var;

New_var = malloc(sizeof(struct new_st)*100);

 strcpy(&arr_name[0], ptr_var[1].name);//this lines throws error

return 0;

}

2 个答案:

答案 0 :(得分:2)

使用strcpy()

strcpy(New_var[0].name, arr_name[0]);

建议:不要从malloc()

转换返回值

- 发布源代码后编辑 -

你可能意味着:strcpy(ptr_var[1].name, arr_name[0]);

这应该是:

char *arr_name[] = {“name1”,  “name1”,  “name1”,  “name1” };/*this lines throws error*/

答案 1 :(得分:1)

我认为你想要做的是:

var  *ptr_var;
ptr_var  = malloc(sizeof(struct new_st) * 100);

ptr_var[0].calculation = 1.5f; //assigning variable inside your struct 0 in your array of structs
ptr_var[0].name = "Foobar";


strcpy(&arr_name[0], ptr_var[1].name); //copy string 
//Free memory at end of your program
free(ptr_var);