ポインター「アイテム」の配列があり、それに値を動的に割り当てる必要があります。すべての配列アイテムは同じ値を持ち、2 番目の for ループで表示される最後の値です。
int h = 0;
char* item[6];
char x[] = "sss";
for (h = 0; h < 6; h++)
{
item[h] = (char*)malloc(sizeof(char*));
sprintf(x, "%s (%d)", "item", h);
item[h] = &x[0];
printf("item= %s\r\n", item[h]);
}
for (h = 0; h < 6; h++)
{
printf("item22222= %s\r\n", item[h]);
}
このコードを実行すると、
item= item (0)
item= item (1)
item= item (2)
item= item (3)
item= item (4)
item= item (5)
item22222= item (5)
item22222= item (5)
item22222= item (5)
item22222= item (5)
item22222= item (5)
item22222= item (5)
2 番目のループで同じ結果が繰り返されるのはなぜですか? 最初のループに似ていると思ったでしょう ( item (1), item (2), ...
)。コード/ロジックでエラーを見つけるのを手伝ってください。