私は課題に取り組んでいて、難しい問題に遭遇しました。私に関する限り、私が学んだことから、次のコードは正しいはずですが、機能しません。基本的に私がしようとしているのは、ポインターとしてメソッドに渡される配列の一部である構造体の変数メンバーに文字列値をコピーすることです。私は何が欠けていますか?
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に慣れていません