diff --git a/20230605/array-param-06.c b/20230605/array-param-06.c
new file mode 100644
index 0000000000000000000000000000000000000000..f3f08ff948a690c8453f8e4462e8e30948bf46ad
--- /dev/null
+++ b/20230605/array-param-06.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int read_something (int **a)
+{
+  int n;
+  printf ("Wie viele Zahlen? ");
+  scanf ("%d", &n);
+  int *b = malloc (n * sizeof (int));
+  for (int i = 0; i < n; i++)
+    {
+      printf ("%d. Zahl: ", i + 1);
+      scanf ("%d", b + i);  /* andere Schreibweise: &a[i] */
+    }
+  if (a)
+    *a = b;
+  return n;
+}
+
+int main (void)
+{
+  int *x = NULL;
+  int numbers_read = read_something (&x);
+  printf ("%d eingegebene Zahlen:", numbers_read);
+  for (int i = 0; i < numbers_read; i++)
+    printf (" %d", x[i]);
+  printf ("\n");
+  free (x);
+  return 0;
+}
diff --git a/20230605/array-param-07.c b/20230605/array-param-07.c
new file mode 100644
index 0000000000000000000000000000000000000000..0783eac4960f5907ec2697a57c954330b63b92f0
--- /dev/null
+++ b/20230605/array-param-07.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int read_something (int **a)
+{
+  int i = 0;
+  printf ("Zum Beenden: -1 eingeben\n");
+  int n = 1;
+  int *b = malloc (n * sizeof (int));
+  do
+    {
+      if (i + 1 >= n)
+        {
+          n *= 2;
+          b = realloc (b, n * sizeof (int));
+        }
+      printf ("%d. Zahl: ", i + 1);
+      scanf ("%d", b + i);  /* andere Schreibweise: &a[i] */
+      i++;
+    }
+  while (b[i - 1] >= 0);
+  if (a)
+    *a = b;
+  return n;
+}
+
+int main (void)
+{
+  int *x = NULL;
+  int numbers_read = read_something (&x);
+  printf ("%d eingegebene Zahlen:", numbers_read);
+  for (int i = 0; i < numbers_read; i++)
+    printf (" %d", x[i]);
+  printf ("\n");
+  free (x);
+  return 0;
+}
diff --git a/20230605/array-param-08.c b/20230605/array-param-08.c
new file mode 100644
index 0000000000000000000000000000000000000000..551620e756f3444f4ed17f286fc5aa5d845df3ae
--- /dev/null
+++ b/20230605/array-param-08.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int read_something (int **a)
+{
+  int i = 0;
+  printf ("Zum Beenden: -1 eingeben\n");
+  int n = 1;
+  int *b = malloc (n * sizeof (int));
+  do
+    {
+      if (i + 1 >= n)
+        {
+          n *= 2;
+          b = realloc (b, n * sizeof (int));
+        }
+      printf ("%d. Zahl: ", i + 1);
+      scanf ("%d", b + i);  /* andere Schreibweise: &a[i] */
+      i++;
+    }
+  while (b[i - 1] >= 0);
+  if (a)
+    *a = b;
+  return i - 1;
+}
+
+int main (void)
+{
+  int *x = NULL;
+  int numbers_read = read_something (&x);
+  printf ("%d eingegebene Zahlen:", numbers_read);
+  for (int i = 0; i < numbers_read; i++)
+    printf (" %d", x[i]);
+  printf ("\n");
+  free (x);
+  return 0;
+}