1

我正在尝试学习 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;

}
4

2 回答 2

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*/
于 2013-02-28T09:39:01.193 回答
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);
于 2013-02-28T09:40:27.310 回答