用指针动态输入字符串

为什么我只能输入n-1个字符串

img

贴出完整源代码,测试用例及其结果,我这里用VS2017测试,没有问题。
这是我按你提供的源代码写的,

void input(char** ps, int n) {
    char temp[100];
    for (size_t i = 0; i < n; i++)
    {
        cin.getline(temp, 100);
        ps[i] = new char[strlen(temp) + 1];
        strcpy(ps[i], temp);
    }
}
int main()
{
    int n = 4;
    char** ps = (char**)malloc(sizeof(char*) * n);
    input(ps, n);

    for (size_t i = 0; i < n; i++)
    {
        cout << i << ": " << ps[i] << endl;
    }
    return 0;
}

测试用例(4行输入):

fsefjo 0dif2109 uf u2398u
jf9 jf9sd jr21980 upfds
jf081u3 298u98u129u4192u 4293p
1

运行输出结果(4行输出):

0: fsefjo 0dif2109 uf u2398u
1: jf9 jf9sd jr21980 upfds
2: jf081u3 298u98u129u4192u 4293p
3: 1