UNIX-like operating systems (including Linux) use a concept called privilege separation to ensure that the system stays safe. UNIX was designed as a multi-user system from the ground up - that is, it was designed so that many people could use one computer running UNIX at once. Since most users don't need to be able to modify the core system. Only the system administrator should have that privilege, and that user is traditionally called root. (Root is a lot like Administrator in Windows.)
This makes sense on several levels. Commonly, a web server or other process that exposes a port to other (possibly malicious) computers will run as its own user (Apache runs as the user
nobody), so that even if the web server is hacked, the attacker can't trash the entire machine quite so easily. It even makes sense for mostly single-user machines such as desktops: if other members of your family, for example, somehow run
rm -rf / (DO NOT RUN THIS), they won't have permission to delete every file on the system, like they would if there were no such thing as privilege separation.
sudo command exists to temporarily give you root-level privileges when you need them to administer the system. The root user can do anything on a system, with almost no exceptions. So even if you do something by accident, it will be instantly carried out, even if it's bad for the health of your system. This is why it's good practice to do most of your activities as a normal user, and use root only when needed, like when you're installing a program.
You shouldn't need to use root to get rid of a segmentation fault. If root is the only thing that fixes a segfault, then the program has a bug. Programs should not fail like that just because they don't have root.