Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int x,i , anz=1, scanfvalid;
- int *wertetemp = 0;
- int *werte = 0, *wert = 0;
- int *buffer = 0;
- int *einlesen(int *anz) {
- werte = malloc(sizeof(int));
- buffer = malloc(sizeof(int));
- wert = werte;
- x = 1;
- i = 1;
- while (x == 1){
- printf("Anzahl der durchläufe%d\n", *anz);
- printf("Adresse des Zeigers auf aktuellen Wert%p\n", wert);
- printf("Adresse des Zeigers auf ersten Wert%p\n", werte);
- //printf("%d\n", *anz); // anzahl als INT ausgeben
- //printf("%p\n", buffer); // adresse von buffer ausgeben
- printf("int wert eingeben:");
- scanfvalid = scanf("%d", buffer);
- //printf("%p\n", buffer);
- //printf("%d\n", *buffer);
- //printf("%d\n", *anz);
- *wert = *buffer;
- if (scanfvalid == 0){
- x = 0;
- }
- else
- {
- printf("eingebene Zahl: %d\n", *wert);
- wertetemp = realloc(werte, (*anz+1)*sizeof(int));
- printf("Adresse von wertetemp%p\n", wertetemp);
- if (wertetemp != NULL){
- werte = wertetemp; // wenn Speicherzuweisung o. k.
- }
- else { // Zeiger verwenden, sonst Ruecksprung
- x = 0;
- }
- *anz = *anz + 1;
- wert++;
- }
- }
- return 0;
- }
- int main(void) {
- int *messwert;
- messwert = malloc(sizeof(int));
- anz = einlesen(&anz);
- x = anz;
- wert = werte
- for (i = 0; i < x; i++){
- printf("%d\n", *wert);
- wert++;
- free(werte);
- free(buffer);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement