我正在执行一项任务并遇到了具有挑战性的问题。就我而言,从我了解到的情况来看,下面的代码应该是正确的,但是它不起作用。基本上我试图将一个字符串值复制到结构的变量成员中,这是作为指针传递给方法的数组的一部分。我错过了什么?
typedef struct
{
char * name; //variable in struct I am trying to access
} Struct;
void foo(Struct * arr) //array of Structs passed into function as a pointer
{
int i = 0;
while(i++ < 2)
{
arr[i].name = malloc(sizeof(char *)); //assigning memory to variable in each Struct
arr[i].name = strdup("name"); //copying "name" to variable in each Struct
printf("C - %s\n", arr[i].name); //printing out name variable in each Struct
}
}
main()
{
Struct * arr; //defining pointer
arr = calloc(2, sizeof(Struct)); //allocating memory so pointer can hold 2 Structs
foo(arr); //calling function foo passing pointer into function
return 0;
}
此代码可以编译并运行,但它并没有按照设计的方式运行。如果这是微不足道的事情,请原谅我。我是 C 语言的新手