Что касается стандартов, да, вы должны использовать мьютекс.Невыполнение этого требования приводит к неопределенному поведению.На практике большинство машинных архитектур не будет иметь проблем с этим.Будущие версии стандарта C (C1x) будут иметь атомарные типы, которые, если их использовать здесь, определенно сделают назначение без блокировки безопасным (хотя, возможно, с использованием внутренней блокировки, на сломанных дугах, в которых отсутствует настоящая атомика).