Утечки памяти : Обычно это относится к языку, подобному C, где вы управляете памятью вручную. В этом случае вы будете выделять память, не освобождая ее, когда вы закончите ее использовать. Выделения продолжают накапливаться во время работы приложения, и память не может быть освобождена, пока процесс не завершится. Утечки памяти (Википедия)
Ошибки сегментации : Наиболее распространенная причина ошибок этого типа - попытка доступа к части памяти, которая либо не существует, либо находится за пределами разрешенной памяти вашей работающей программы (например, если Вы пытались получить доступ к памяти, в которой загружена ОС). Обычно это означает, что вы пытаетесь использовать неверный указатель, например:
int* ptr;
...
...
...
*ptr = 5;
вызовет segfault, потому что ptr является нулевым указателем (или мусором), и вы не выделили память для указателя, на которую указывает указатель. Ошибка сегментации (Википедия)