https://kasata.medium.com/understanding-and-preventing-segmentation-fault-core-dumped-in-c-5d5c7c7aa18b