Skip to content
Snippets Groups Projects
Commit 7be9faa8 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Beispiele: C-Array zurückgeben, 5.6.2023

parent a480e790
Branches
No related tags found
No related merge requests found
#include <stdio.h>
void read_something (int *a)
{
for (int i = 0; i < 3; i++)
{
printf ("%d. Zahl: ", i + 1);
scanf ("%d", a + i); /* andere Schreibweise: &a[i] */
}
}
int main (void)
{
int x[3];
read_something (x);
printf ("Eingegebene Zahlen:");
for (int i = 0; i < 3; i++)
printf (" %d", x[i]);
printf ("\n");
return 0;
}
#include <stdio.h>
#define N 3
void read_something (int *a)
{
for (int i = 0; i < N; i++)
{
printf ("%d. Zahl: ", i + 1);
scanf ("%d", a + i); /* andere Schreibweise: &a[i] */
}
}
int main (void)
{
int x[N];
read_something (x);
printf ("Eingegebene Zahlen:");
for (int i = 0; i < N; i++)
printf (" %d", x[i]);
printf ("\n");
return 0;
}
#include <stdio.h>
#define N_MAX 256
int read_something (int *a)
{
int i = 0;
printf ("Zum Beenden: -1 eingeben\n");
do
{
printf ("%d. Zahl: ", i + 1);
scanf ("%d", a + i); /* andere Schreibweise: &a[i] */
i++;
}
while (a[i - 1] >= 0);
return i - 1;
}
int main (void)
{
int x[N_MAX];
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");
return 0;
}
#include <stdio.h>
#define N_MAX 10
int read_something (int *a)
{
int i = 0;
printf ("Zum Beenden: -1 eingeben\n");
do
{
printf ("%d. Zahl: ", i + 1);
scanf ("%d", a + i); /* andere Schreibweise: &a[i] */
i++;
}
while (i < N_MAX && a[i - 1] >= 0);
return i - 1;
}
int main (void)
{
int x[N_MAX];
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");
return 0;
}
#include <stdio.h>
#define N_MAX 10
int read_something (int *a)
{
int i = 0;
printf ("Zum Beenden: -1 eingeben\n");
do
{
printf ("%d. Zahl: ", i + 1);
scanf ("%d", a + i); /* andere Schreibweise: &a[i] */
i++;
}
while (i < N_MAX && a[i - 1] >= 0);
if (a[i - 1] < 0)
i--;
return i;
}
int main (void)
{
int x[N_MAX];
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");
return 0;
}
vorletzte Woche:
- Linux-Kernel: vom Einsprungpunkt der Systemaufrufe
bis zum Callback des Treibermoduls
heute:
- C-Programmierung: mehrere Bytes zurückgeben
- CVH-Camera: Sicherheits-Update
- Dateisysteme
C-Programmierung: mehrere Bytes zurückgeben, 05.06.2023, 15:53:45
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Situation:
- Zeigervariable an void-Funktion übergeben
- Aufrufer definiert Variable und übergibt sie an die Funktion
- Länge nicht fest, aber maximale Länge bekannt
--> Funktion könnte die benutzte Länge zurückgeben.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment