我正在努力学习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;
}
答案 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);