visual studio 2022一个不易发现的问题

 更新时间:2022年07月04日 08:32:18   作者:人间正道是沧桑80  
本文主要介绍了visual studio 2022一个不易发现的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

D:\Program Files(x86)\C++(从入门到放弃)\01 结构体定义和使用\x64\Debug\01 结构体定义和使用.exe (进程 23260)已退出,代码为 -1073741819。

昨天晚上学习C++的时候,学习到结构体,跟着老师写代码发现何老师一模一样的代码总是编不过去。没有打印信息,总是报错。

源代码如下:

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

struct student
{
    string name;
    int score;
};

struct teacher
{
    string name;
    struct student sArray[5];
};

void allocateSpace(struct teacher tarray[], int len)
{
    string nameSeed = "ABCDE";;
    for (int i = 0; i < len; i++)
    {
        tarray[i].name = "teacher_";
        tarray[i].name += nameSeed[i];
        for (int j = 0; j < 5; j++)
        {
            tarray[i].sArray[j].name = "Student_";
            tarray[i].sArray[j].name += nameSeed[j];

            tarray[i].sArray[j].score = 60;
        }
    }
}

void printinfo(struct teacher tarray[], int len)
{
    for (int i = 0; i < len; i++)
    {
        cout << "老师姓名:" << tarray[i].name << endl;
        for (int j = 0; j < 5; j++)
        {
            cout << "\t学生姓名: " << tarray[i].sArray[j].name <<
                " 考试分数: " << tarray[i].sArray[j].score
                <<endl;
        }
    }
}

int main()
{
    struct teacher tarray[3];
    int len = sizeof(tarray) / sizeof(tarray[0]);
    srand((unsigned int)time(NULL));
    allocateSpace(tarray, len);
    printinfo(tarray, len);
    return 0;
}

仔细研究发现在同一个项目中的另一个源文件中有一个同名结构体,但是数据属性不一样。

目标文件为07,代码上面已经附了。此处和07源文件中的teacher熟据属性不一致。导致执行报错。

这个未知的错误,完全查看不出来。也无从调试。

找出问题的过程:

我把整个源码放到code::blocks中进行编译成功运行。后来把该项目中的源文件按个“右键-属性-从生成中排除- 是”排除之后单个编译通过,挨个添加到04时编译不过,添加左右的除了04文件其他均通过。由此判断是为04问题。但是04中的main函数我改为main04,也无法编译。仔细查看04代码发现有一个结构体

struct teacher
{<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
    int id;
    string name;
    int age;
    struct student stu;
};

和07中结构体

struct teacher
{<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
    string name;
    struct student sArray[5];
};

名字一模一样,单数数据属性不一样。修改04中的teacher为Teacher之后编译通过。

结论:

visual studio 2022在同一个项目中可以有同名结构体,但是数据属性必须要一致,否则会报错误(该错误很难找且很诡异)。

到此这篇关于visual studio 2022一个不易发现的问题的文章就介绍到这了,更多相关visual studio 2022一个不易发现的问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c语言实现的hashtable分享

    c语言实现的hashtable分享

    哈希表效率高,众所周知。应用广泛,php中大部分存储使用的都是hashtable,包括变量,数组…如何使用c语言实现hashtable呢,现提供自己的思路,如有不妥之处,敬请赐教
    2014-01-01
  • 牛顿迭代法求多项式在1.5附近的值2*x的3次幂--4x平方+3*x-6=0的实现代码

    牛顿迭代法求多项式在1.5附近的值2*x的3次幂--4x平方+3*x-6=0的实现代码

    以下代码是使用了牛顿迭代法求多项式在1.5附近的值 2*x的3次幂 - 4x的平方 + 3*x -6=0的实例。需要的朋友参考下吧
    2013-05-05
  • Qt(C++)调用工业相机Basler的SDK使用示例

    Qt(C++)调用工业相机Basler的SDK使用示例

    这篇文章主要介绍了Qt(C++)调用工业相机Basler的SDK使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C++中的菱形继承深入分析

    C++中的菱形继承深入分析

    这篇文章主要介绍了C++中的菱形继承深入分析的相关资料,需要的朋友可以参考下
    2017-07-07
  • C语言实现车辆出租管理系统

    C语言实现车辆出租管理系统

    这篇文章主要为大家详细介绍了C语言实现车辆出租管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C语言使用函数实现字符串部分复制问题

    C语言使用函数实现字符串部分复制问题

    这篇文章主要介绍了C语言使用函数实现字符串部分复制问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C语言中的柔性数组你了解吗

    C语言中的柔性数组你了解吗

    这篇文章主要为大家详细介绍了C99中的新语法——柔性数组的使用以及优缺点,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
    2023-04-04
  • 使用C语言实现CRC校验的方法

    使用C语言实现CRC校验的方法

    本篇文章是对使用C语言实现CRC校验的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++反射的一种实现方法详解

    C++反射的一种实现方法详解

    这篇文章主要给大家介绍了关于C++反射的一种实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • C语言打印杨辉三角形的示例代码

    C语言打印杨辉三角形的示例代码

    杨辉三角形,又称帕斯卡三角形、贾宪三角形、海亚姆三角形,它的排列形如三角形。本文将为大家介绍通过C语言实现打印杨辉三角形的示例代码,需要的可以参考一下
    2022-02-02

最新评论