You could try something along these lines, assigning to the array directly instead of using the alarm variable as an intermediate:
alarm_list= REPLICATE({alarm, Alarm_Id:0, Range:1, Bin:0},4)
FOR ia = 0, 3 DO BEGIN
alarm_list[i].alarm_id = ia
alarm_list[i].bin = bin
bin += 1
ENDFOR
Hope this helps guide.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…