Указатель - это просто обычная переменная, которая содержит адрес для чего-то еще в качестве значения. Другими словами, указатель указывает на адрес, где можно найти что-то еще.
Когда вы выделяете:
c = calloc(2,sizeof(float *));
Вы назначаете начальный адрес для нового блока памяти на c
. Другими словами, c
указывает на место в памяти, где находятся первые (из двух) указателей, которые вы выделили.
Когда вы назначаете (глагол):
assign = c;
Вы устанавливаете значение, удерживаемое assign
, на значение, удерживаемое c
. (и что держит c
? - адрес блока памяти, выделенного вами calloc
). Так что теперь assign
содержит тот же адрес, что и c
, например, assign
теперь указывает на первый (из двух) указателей, которые вы выделили. Так что assign
и c
теперь содержат один и тот же адрес в качестве их значения, и вы можете использовать любой из них для ссылки на то, что там хранится.
примечание: нет необходимости разыгрывать возврат malloc
, это не нужно. Смотрите: Я разыгрываю результат malloc? . Кроме того, если вы используете разыменованный указатель для установки размера шрифта для выделения, вы исключаете вероятность ошибочного определения, например,
c = calloc (2, sizeof *c);
Поместите этот код после заполнения поля комбинированного списка:
comboBox1.SelectedIndex = 0;