Запись строки в экземпляр объекта

делаю базу данных , обязательно на СИ. не могу ввести строку , для экземпляра объекта. ниже мой весь мой код. проблема в 40-й строке. при вводе данных. почему-то эту строку пропускает и нельзя ввести сообщение.

#include <stdio.h>
#include <string.>
#include <stdlib.h> // для перехода на русский язык

 typedef struct {
    unsigned int hour;
    unsigned int minute;
    unsigned int second;
}Date;

typedef struct {
    unsigned int numberUser;
    char textUser[50];
    Date date;
}Answer;

int pointMenu = 0;

void menu() {
    printf("(0) Выход из меню\n");
    printf("(1) Ввод данных\n");
    printf("(1) Вывод данных\n");
    scanf_s("%d", &pointMenu);
}

void DataEntry(Answer *(&d) , int &n) {
    printf("Введите количество данныx :");
    scanf_s("%d", &n);

    d = new Answer[n];

    for (int i = 0; i < n; i++) {
        printf("\nВведите номер устройства :");
        scanf_s("%d", &d[i].numberUser);

        printf("\nВведите текст сообщения, не больше 50 символов :");
        
        scanf_s("%49c" , &d[i].textUser); //<------- вот тут не могу записать сообщение

        printf("\nВведите время получения через пробел :");
        scanf_s("%d %d %d", &d[i].date.hour, &d[i].date.minute, &d[i].date.second);

        printf("\n________________________\n");
    }
}
   
int main(){
    system("chcp 1251");
    system("cls");

    menu();
    int actionsInMenu;
    int amountOfData = 0;
    
    Answer* d = new Answer[amountOfData];
    
    while (pointMenu != 0){
        switch (pointMenu){
        case 1:
            DataEntry(d , amountOfData);
            menu();
            break;
        case 2:
            /*if (amountOfData != 0) {
                Print(d, amountOfData);
            }
            else {
                printf("\nДанные пусты.\n");
            }*/
            menu();
            break;
        default:
            printf("Неверный ввод данных.\n");
            menu();
            break;
        }
    }
    return 0;
}

Ответы (0 шт):