cmov на самом деле странно работает. По идеи он не выполняется если не верно условие, но при этом в любом случае проверят значение во втором параметре. То-есть , еслиб кинуть не валидный адрес, то будет ошибка
А сколько тактов процессора занимает extern malloc и затем extern free? И если выделять память такими командами, (ещё mmap), сколько оперативки это займёт?
То что выше cmov не обращай внимания. Я просто создал условие при котором он не должен присвоить значение. А раз не должен присвоить, то ему должно быть пофиг что внутри [0]