Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int x,i , anz=1, scanfvalid;
  5. int *wertetemp = 0;
  6. int *werte = 0, *wert = 0;
  7. int *buffer = 0;
  8.  
  9. int *einlesen(int *anz) {
  10. werte = malloc(sizeof(int));
  11. buffer = malloc(sizeof(int));
  12. wert = werte;
  13. x = 1;
  14. i = 1;
  15. while (x == 1){
  16. printf("Anzahl der durchläufe%d\n", *anz);
  17. printf("Adresse des Zeigers auf aktuellen Wert%p\n", wert);
  18. printf("Adresse des Zeigers auf ersten Wert%p\n", werte);
  19. //printf("%d\n", *anz); // anzahl als INT ausgeben
  20. //printf("%p\n", buffer); // adresse von buffer ausgeben
  21. printf("int wert eingeben:");
  22. scanfvalid = scanf("%d", buffer);
  23. //printf("%p\n", buffer);
  24. //printf("%d\n", *buffer);
  25. //printf("%d\n", *anz);
  26. *wert = *buffer;
  27. if (scanfvalid == 0){
  28. x = 0;
  29. }
  30. else
  31. {
  32. printf("eingebene Zahl: %d\n", *wert);
  33. wertetemp = realloc(werte, (*anz+1)*sizeof(int));
  34. printf("Adresse von wertetemp%p\n", wertetemp);
  35. if (wertetemp != NULL){
  36. werte = wertetemp; // wenn Speicherzuweisung o. k.
  37. }
  38. else { // Zeiger verwenden, sonst Ruecksprung
  39. x = 0;
  40. }
  41. *anz = *anz + 1;
  42. wert++;
  43. }
  44. }
  45. return 0;
  46. }
  47.  
  48.  
  49. int main(void) {
  50. int *messwert;
  51. messwert = malloc(sizeof(int));
  52. anz = einlesen(&anz);
  53. x = anz;
  54. wert = werte
  55. for (i = 0; i < x; i++){
  56. printf("%d\n", *wert);
  57. wert++;
  58. free(werte);
  59. free(buffer);
  60.  
  61. }
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement