diff --git a/20200116/dynmem-2a.c b/20200116/dynmem-2a.c new file mode 100644 index 0000000000000000000000000000000000000000..8a0bb60241555d1493c0527340bdc335d3fbdc1e --- /dev/null +++ b/20200116/dynmem-2a.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> + +int main (void) +{ + char **name = malloc (3 * sizeof (char *)); + name[0] = "Anton"; + name[1] = "Berthold"; + name[2] = "Caesar"; + + char **new_name = malloc (4 * sizeof (char*)); + for (int i = 0; i < 3; i++) + new_name[i] = name[i]; + name = new_name; /* Speicherleck: Array wurde nicht freigegeben! */ + + name[3] = "Dieter"; + + for (int i = 0; i < 4; i++) + printf ("%s\n", name[i]); + free (name); + free (new_name); + return 0; +} diff --git a/20200116/hello-gtk.png b/20200116/hello-gtk.png deleted file mode 120000 index cca99209d86683a9a3b0f70bbc149780bae10ba6..0000000000000000000000000000000000000000 --- a/20200116/hello-gtk.png +++ /dev/null @@ -1 +0,0 @@ -../common/hello-gtk.png \ No newline at end of file diff --git a/20200116/hp-20200116.pdf b/20200116/hp-20200116.pdf index da6d761d3af2e5e06b73867c862801c0a85d22d6..84ce95667edd1658a8f2ec1fc34804d4f0ca70e9 100644 Binary files a/20200116/hp-20200116.pdf and b/20200116/hp-20200116.pdf differ diff --git a/20200116/hp-20200116.tex b/20200116/hp-20200116.tex index b0ec7c7d5a3c3b87d8e0b69ef63561ced0896274..f7797183646fd8c6051b65cfdd6ad2eebc138517 100644 --- a/20200116/hp-20200116.tex +++ b/20200116/hp-20200116.tex @@ -72,6 +72,7 @@ \color{red} \item[6.3] Unions \item[6.4] Virtuelle Methoden + \color{black} \item[6.5] Beispiel: Graphische Benutzeroberfläche (GUI) \item[6.6] Ausblick: C++ \end{itemize} @@ -820,6 +821,8 @@ \end{itemize} \end{frame} +\iffalse + \subsection{Beispiel: Graphische Benutzeroberfläche (GUI)} \begin{frame}[fragile] @@ -932,4 +935,6 @@ \end{frame} +\fi + \end{document} diff --git a/20200116/objects-3a.c b/20200116/objects-3a.c new file mode 100644 index 0000000000000000000000000000000000000000..a285a87d72694f5259a8a736ab448383e7004580 --- /dev/null +++ b/20200116/objects-3a.c @@ -0,0 +1,34 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { &i, &s }; + + for (int i = 0; i < 2; i++) + if (object[i]->type == 1) + printf ("Integer: %d\n", object[i]->content); + else if (object[i]->type == 2) + printf ("String: \"%s\"\n", object[i]->content); + + return 0; +}