Я объявил глобальный массив, char *people[][2]
. Цель этого массива для хранения и фамилии людей в форме:malloc для 2D-массива
people[0][0] = "John" people[0][1] = "Smith"
people[1][0] = "Frank" people[1][1] = "Jones"
... ...
people[NumOfNames][0] = "Lisa" people[NumOfNames][1] = "Murray"
Где NumOfNames
является целой переменной вычисляется в функции в моей программе. Как только это значение было сохранено для NumOfnames
, как я могу использовать malloc
для распределения памяти до people
, так что он имеет размер [NumOfNames]*[2]
?
Во-первых, я думаю, что фактические имена не являются буквальными строками, а читаются откуда-то? Во-вторых, для решения вашей проблемы вам понадобятся два цикла, один вложенный внутри другого, для распределений. –
@JoachimPileborg Да, имена читаются из файла. Не могли бы вы рассказать о идее вложенных петель? Я очень новичок в функции 'malloc'. – KOB
Если вам действительно не нужно это делать, лучший способ - использовать структуру, содержащую имя и фамилию. Тогда вам нужен только один размерный массив для хранения каждого человека. И имеет дополнительное преимущество, заключающееся в том, что он легко расширяется для большего количества атрибутов человека (например, возраст, высота и т. Д.). Вам просто нужно добавить больше полей в структуру. – kaylum