1094570635 发表于 2022-11-18 09:55:03

string 字符问题

#include<iostream>
using namespace std;
#include<string>
#include<ctime>

struct Student
{
        string name;
        int score;
};

struct Teacher
{
        string tName;
        Student sArray;

};
void allocateSpace(Teacher tArray[], int len)
{
        string nameSeed = "ABCDE";
        for (int i=0;i<len;i++)
        {
               
                tArray.tName = "Teacher_";
                tArray.tName += nameSeed;

                for (int j = 0; i < 5; j++)
                {

                        tArray.sArray.name = "Student_";
                        tArray.sArray.name += nameSeed;

                        int random = rand()%61 + 40;
                        tArray.sArray.score = random;
                }

        }

}


void printInfo(Teacher tArray[], int len)
{
        for (int i = 0; i < len; i++)
        {
                cout << "老师姓名:" << tArray.tName << endl;

                for (int j = 0; j < 5; j++)
                {
                        cout << "\t学生姓名:" << tArray.sArray.name
                                << "考试分数" << tArray.sArray.score << endl;
                }
        }


}


int main()
{
       


        srand((unsigned int)time(NULL));

        struct Teacher tArray;

        int len = sizeof(tArray) / sizeof(tArray);


        allocateSpace(tArray, len);
        printInfo(tArray, len);


        return 0;
}

直接显示
0x00007FFFBC811400 (vcruntime140d.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。

jhq999 发表于 2022-11-18 10:16:27

for (int j = 0; j< 5; j++)//j<5
                {

                        tArray.sArray.name = "Student_";
                        tArray.sArray.name += nameSeed;

                        int random = rand()%61 + 40;
                        tArray.sArray.score = random;
                }
页: [1]
查看完整版本: string 字符问题