C++的char型数据问题

(1)

img


(2)

img


如上图所示,我写了两种char的函数,但第一张图的代码(分函数)跑不出‘cout’,即没有输出,但第二个代码(一个函数)却可以输出,输出如下图
(1)

img

(2)

img

我想知道是哪里出错了,因为visual studio的提示是索引大小的问题,但我不知怎么改

因为你开了100长度的数组,但是初始化的时候a[99]没有被赋值啊

你给字符串赋值,最终应该return a和b呀,为什么返回的是a[99]这单个的字符呢


char A;
char A[];
傻傻分不清楚

a1和b1返回的都是char字符a[99],返回char数组a或b的序号99的字符,除非你输入100个字,不然返回的是随机字符。

#include <iostream>
using namespace std;

char* a1() {
    char *a=new char[100];
    cout << "Please enter your name: ";
    cin >> a;
    return a;
}


char* b1() {
    char *b=new char[100];
    cout << "Please enter your password: ";
    cin >> b;
    return b;
}


int main() {
    char *a, *b;
    a = a1();
    b = b1();
    cout << a << endl << b;
    delete[] a;
    delete[] b;
    return 0;
}

你返回的是数组类型,你却用char来接收。