Я пытаюсь создать malloc на основе структуры.Комбинирование Struct + malloc в C
структура выглядит следующим образом:
struct shirts
{
char color[10];
int size;
};
struct shirts* ptr_shirts;
я тогда хочу сделать й количество футболок, так что у меня есть переменный для этого:
printf("How many T-shirts? ");
scanf("%d",&amount);
getchar();
ptr_shirts = (struct shirts *)malloc(amount * sizeof(struct shirts));
я тогда хочу Fille пространства но я не знаю, как это сделать. Я пытался использовать цикл и поместить в значениях, как это массив:
for(i = 0; i<amount;i++)
{
printf("Color on T-shirt nr %d: ",(i+1));
scanf_s("%s", "what to type here" ,sizeof(ptr_shirts->color));
printf("Size on T-shirt nr %d: ",(i+1));
scanf("%d",&"what to type here");
}
Я попытался с
ptr_shirts[i].size
ptr_shirts->size[i]
(ptr_shirts.size
and then ptr_shirts++)
, но я не знаю, как сделать это легко потому что я хочу, чтобы заполнить более 1 футболка, вот проблема я получил
Вы можете использовать указатель, используя синтаксис массива индексации, поэтому 'ptr_shirts [я] .size' правильно, для значений of 'i' в диапазоне 0 <= i
Обратите внимание, что вы должны передать указатель на член 'size', поэтому вам нужно разыменовать амперсанд (' & '). Но в случае члена 'color' массив' char' сразу распадается на указатель на первую ячейку. – bitmask
О, и, кстати, [в C вы не должны бросать результат 'malloc'] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc). –