Чтение CSV из текстового файла в C

я пытаюсь прочитать CSV из текстового файла в C. Формат текстового файла

1,Bob,[email protected]
2,Daniel,[email protected]
3,John,[email protected]

Когда я запускаю программу, номер отображается нормально, но имя и адрес электронной почты отображаются как мусор. Вот моя программа ...

#include 
#include 
#include 

typedef struct {
    int number;
    char* name;
    char* email;
} Owner;

Owner owners[100];

int load(char* filename)
{
    char buffer[200];
    char token[50];
    Owner* owner;
    int owners_size = 0;
    FILE* file = fopen(filename, "r");

    while(fgets(buffer, 200, file) != NULL)
    {
        owner = (Owner*)malloc(sizeof(Owner));
        owner->number = atoi(strtok(buffer, ","));
        owner->name = strtok(NULL, ",");
        owner->email = strtok(NULL, ",");
        owners[owners_size++] = *owner;
    }

    fclose(file);
    return owners_size;
}

int main()
{
    int choise, owners_size, index;
    char* owners_filename = "owners2.txt";

    owners_size = load(owners_filename);

    if(owners_size)
    {
        printf("owners size: %d\n\n", owners_size);

        for(index = 0; index < owners_size; index++)
            printf("%d, %s %s\n", owners[index].number, owners[index].name, owners[index].email);
    }
}

Может кто-нибудь сказать мне, в чем причина. Я ценю вашу помощь.

Ответы на вопрос(4)

Ваш ответ на вопрос