Pointer vergisst mein ersten Wert...

XeoX

Mitglied
Ich habe folgenden Code und zwar, wenn ich als Namenanzahl 5 oder größer Eintrage, wir meiner erster Eingegebender Name Gelöscht. Also auf dem Index Null! Hat da jemand eine Idee?

Code:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define MAXLAENGE 51

int main (void) {
  char  swap[MAXLAENGE];
  int    NamAnz = 0, index;

  char   dummy[81];
  char** PtrNamPtrArr = NULL;
  printf("\n\n");
  printf("Anzahl der Namen: "); scanf("%d", &NamAnz);
  printf("\n\n");
  if (NamAnz < 1) NamAnz = 1; else if (NamAnz > 10) NamAnz = 10;
  gets(dummy);

  PtrNamPtrArr = (char **) calloc (NamAnz, sizeof(char));

   for (index = 0; index < NamAnz; index++) {
  printf("Name %2d: ", index + 1);
  fgets(swap, MAXLAENGE, stdin);
  swap[strlen(swap) - 1] = '\0';
  PtrNamPtrArr[index] =(char*) malloc (strlen(swap) + 1);
  strcpy(PtrNamPtrArr[index], swap);
  printf("Name  %d: %s\n", index + 1, PtrNamPtrArr[index]);
   printf("Name  %d: %s\n", index + 1, PtrNamPtrArr[0]);
  }

    for (index = 0; index < NamAnz; index++)
    printf("Name  %d: %s\n", index + 1, PtrNamPtrArr[index]);


  gets(dummy);
free(PtrNamPtrArr);
  return 0;
}
Danke schon mal!

Das Passiert mir mit Borland C ++ 5.2 mit dev C++ klappt es bei mir wunderbar!

Xeox
 
Zuletzt bearbeitet:
Zurück