I am a beginner in C programming and I built a function that recieves the string "HodHasharon,frozenYogurt,100". The function cuts the string into 3 pieces where every piece is a field of my City struct.
I want to put "HodHasharon" into
City pcity.name (name of the city), "frozenYogurt" into pcity.popularFood (popular food) and number of residents (100) into pcity.residents.
When i am debugging the output in my function the output is correct but when i print from the main.c I got a concatenated string.
For example, when I print pcity.name I get "HodHashafrozenYod" instead of "HodHasharon" but if I do printf at my function printf->name I get the correct output of "HodHasharon"
What am I doing wrong?
struct of City:
typedef struct City
{
    char *name;
    char * popluarFood;
    int numberOfPeople;
} City;
the function:
City * cutCityData (char *singleLine)
{
    City* pcity=(City*)malloc(sizeof(City));
    int firstIndex=1;
    int endIndex=1;
    int checkItarion=0;
    while(endIndex<strlen(singleLine))
    {//while
        while (singleLine[endIndex] != ',')
        {//while2
            endIndex++;
        }//while2
        checkItarion++;
        char cityDetails[endIndex - firstIndex +1];
        memcpy(cityDetails,&singleLine[firstIndex], endIndex);
        cityDetails[endIndex - firstIndex] = '\0';
        if (checkItarion == 1) {
            pcity->name = (char *) malloc(cityDetails);
            strcpy(&(pcity->name), cityDetails);
            endIndex++;
            firstIndex = endIndex;
        }
        if (checkItarion == 2) {
            pcity->popluarFood = (char *) malloc(cityDetails);
            strcpy(&(pcity->popluarFood), cityDetails);
            endIndex++;
            firstIndex=endIndex;
            break;
        }
    }//while
    char cityDetails[strlen(singleLine) - firstIndex + 1];
    memcpy(cityDetails, &singleLine[firstIndex], sizeof(singleLine-1));
    int resdints=atoi(cityDetails);
    pcity->numberOfPeople=resdints;
    return pcity;
    }
from main:
City* pCity=cutCityData(singLine);
printf("%s\n", &(pCity->name));
