@wa53kefa: Du solltest dir ein bisschen über die Basics und über den Modalitäten klarwerden, die zwischen der Erstellung von Programmcode und der Bibliothek oder dem ausführbaren Programm liegen.
Grundlegende Informationen:
http://de.wikipedia.org/wiki/Compiler
Der Vorgang des Programmierens hat nichts mit der Übersetzung eines Programms zu tun. Hierfür benötigst du natürlich Software. Diese kann für ein *nix-Programm i.d.R. mit der
GCC übersetzt werden. Diese ist quelloffen und Freeware.
Es gibt für Linux unter anderem auch einige freie Entwicklungsumgebungen. Ich möchte dir da keine Empfehlung aussprechen, aber ich habe schon gute Erfahrungen mit Eclipse
CDT gemacht. Das Verwenden einer IDE erleichtert für Einsteiger den Umgang durch Try&Error doch ungemein.
Ausgabe von printf() erfolgt auf die Standardausgabe, sprich auf die Konsole, sofern du das Programm von dort aus startest.
Stack vs. Heap:
Stack: Speicher mit beschränkter Größe im Bereich von kB, der nach dem
LIFO-Prinzip funktioniert. Verwaltung dieses Speichers in C/C++ geschiet automatisch.
Heap: Zugriff auf den Hauptspeicher des PCs, Anfrage beim OS zur Reservierung von Speicherbereichen. Müssen von Hand verwaltet (angefordert und freigegeben) werden.
Der Heap ist nichts, womit sich ein Programmieranfänger in seinen ersten Gehversuchen rumschlagen sollte. Da kann man viel Schaden anrichten!
Seit wann gibt es Notepad++ auch für *nix?