2025-10-16 12:50:57 +02:00

78 lines
1.7 KiB
C

/*
* Untersuchen Sie das folgende Programm zunächst ohne es zu kompilieren oder auszuführen.
* Welche Funktionen sind fehlerfrei?
* Handelt es sich im Falle eines Fehlers um einen Laufzeitfehler oder um einen Compiler-Fehler?
*
* Hinweise:
* Compiler-Fehler treten beim Kompilieren des Programms auf. Das Programm lässt sich also
* gar nicht erst übersetzen.
* Bei Laufzeitfehlern lässt sich das Programm (u.U. mit Warnungen) übersetzen. Der Fehler tritt
* erst zur Laufzeit auf. Auch wenn der Fehler nicht immer auftritt bzw. das Programm zum Absturz
* bringt, handelt es sich dennoch um einen Laufzeitfehler. Beliebte Laufzeitfehler sind z.B. Pufferüberläufe.
*/
#include <stdio.h>
#include <stdlib.h>
void kopiereString1()
{
char string1[] = "123456\n";
char string2[] = "789\n";
char *stringZgr1 = string1;
char *stringZgr2 = string2;
while((*stringZgr2++ = *stringZgr1++) != '\0');
printf(string1);
printf(string2);
}
void kopiereString2()
{
char string1[] = "123456\n";
char string2[] = "789\n";
char *stringZgr1 = string1;
char *stringZgr2 = string2;
while((*stringZgr1++ = *stringZgr2++) != '\0');
printf(string1);
printf(string2);
}
void kopiereString3()
{
char string1[] = "123456\n";
char string2[] = "789\n";
while((*string1++ = *string2++) != '\0');
printf(string1);
printf(string2);
}
void kopiereString4()
{
char *string1 = "123456\n";
char *string2 = "789\n";
while((*string1++ = *string2++) != '\0');
printf(string1);
printf(string2);
}
int main()
{
printf("kopiereString1:\n");
kopiereString1();
printf("kopiereString2:\n");
kopiereString2();
printf("kopiereString3:\n");
kopiereString3();
printf("kopiereString4:\n");
kopiereString4();
}