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一个不易发现的问题内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Visual Studio 2022 激活码(亲测可用)

    目录 前言 下载地址 版本区别 系统要求 硬件要求 安装 体验 注册码 前言 Visual Studio 2022 正式版来了.新版本带有 go-live 许可证,可供生产使用.在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 64 位..NET 6 的支持,为核心调试器提供更好的性能. 下载地址 https://visualstudio.microsoft.com/zh-hans/downloads/ 我们下载:https://www.jb51.n

  • Visual Studio 2022 的安装和创建C++项目(图文教程)

    目录 1.下载 2.安装 3.接下来就是创建项目 4.如果你想添加多个.cpp,并且想要运行成功,可以右键.cpp.属性, 下面我们来讲一下如何下载安装VS 2022并且创建C++项目. 1.下载 首先,我们来到VS的微软官网下载地址:https://visualstudio.microsoft.com/zh-hans/vs/ 然后点击下图我画红圈的这个版本:Visual Studio Community(VS 社区版)这个版本是不要钱的,社区版其实就是个人版,在开发.调试上有一些限制,下面两个

  • Visual Studio 2022下载安装与使用超详细教程

    目录 前言 一.Windows安装Visual Studio 2022 1.1 下载地址 1.2 开始安装 1.3 打开Visual Studio 二.Visual Studio创建一个新的项目 2.1 一些准备工作 2.2 创建一个新的项目 2.3 创建C文件 前言 本文用于记录Visual Studio 2022的安装与使用,将持续进行更新.当前版本:V1,2021.12.04 一.Windows安装Visual Studio 2022 1.1 下载地址 首先登陆Visual Studio官

  • 使用Visual Studio 2022开发前端的详细教程

    目录 创建宿主项目 安装前端库 在浏览器引入模块 模块化开发 前端开发环境多数基于Node.js,好处不多说了.但与使用Visual Studio开发的后端Asp.Net Core项目一起调试,却不是很方便,所以试着在Visual Studio 2022中开发前端. 创建宿主项目 首先创建一个空的Asp.Net Core项目作为宿主,创建完成后将Program.cs中的代码修改如下: var builder = WebApplication.CreateBuilder(args); var ap

  • Visual Studio 2022智能辅助编码介绍

    工欲善其事,必先利其器 作为一名.Net开发人员,开发利器当然是首选微软自家的:宇宙第一IDE - Visual Studio了. 这不 VS 2022 正式版已经发布近两个月了,我也体验了近两个月,今天来说说 VS 2022 有趣又强大的智能辅助编码,减少重复代码刻不容缓. 系统自有代码提示 比如我们常用的输出内容到控制台: 或者是定义一个空字符串: 或者再升级一下,根据上下文变量联想: 自动生成类属性 当我们在新建一个常用的类时,比如:用户.订单等.VS2022的辅助编码会帮我们自动生成相关

  • Visual Studio 2022最新版安装教程(图文详解)

    目录 一.官网下载 二.安装启动 三.项目测试 四.背景图设置 一.官网下载 1.点击蓝色链接---->Visual Studio官网,进入之后是这个界面,选择社区版Community下载(社区版Community是对个人免费的,一共有三个版本),这里下载的是.exe 可执行文件 ,比较小,大约1.57M. 2.安装文件图示: 二.安装启动 1.下载好后,放到桌面,点开 2.点击继续,等待下载安装一段时间后,进入到下图页面,来进行配置工作负荷 3.找桌面应用和移动应用模块中的使用C++的桌面开发

  • Visual Studio 2022下载及配置OpenCV4.5.5的详细过程

    目录 一.Visual Studio2022下载 二.OpenCV4.5.5下载 三.配置OpenCV环境变量 四. 在Visual Studio2022上配置OpenCV4.5.5 1.打开visual studio 2022创建新项目,选择C++控制台应用 2.点击顶部标签栏 项目 中 属性 3. 点击VC++目录中的包含目录,编辑,选择路径opencv\build\include,添加到我们的包含目录中 4.点击VC++目录中的库目录,编辑,选择路径opencv\build\x64\vc1

  • Visual Studio 2022 Preview 使用 C++20 Module的详细过程

    作为C++20的一大特性,据说Module能够大大加快项目的编译速度,最近正好看到微软推出了Visual Studio 2022 预览版,随附了面向 C++20 的最新工具链,赶紧拿来体验一下. 体验项目很简单,就两个小文件: 1. hello.ixx export module mo.hello.cpp; export auto hello() { return "hello cpp module"; } 2. main.cpp import mo.hello.cpp; import

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

    D:\Program Files(x86)\C++(从入门到放弃)\01 结构体定义和使用\x64\Debug\01 结构体定义和使用.exe (进程 23260)已退出,代码为 -1073741819. 昨天晚上学习C++的时候,学习到结构体,跟着老师写代码发现何老师一模一样的代码总是编不过去.没有打印信息,总是报错. 源代码如下: #include <iostream> #include <string> #include <ctime> using namespa

  • 基于C#的图表控件库 ScottPlot编译visual studio 2022

    目录 前言 C# 使用 ScottPlot 库 编译 ScottPlot 库 编译 运行 运行例程 小结 前言 基于 C# 的 图表控件库 ScottPlot,开源免费,可以用于开发一些上位机软件,如电压.电流波形的显示,开发[示波器]图形界面,可以显示一些图表.波形,总之功能比较的强大 ScottPlot 库的官方地址:https://github.com/ScottPlot/ScottPlot.git,里面提供了库相关的源代码,还有一些demo例程的源代码 C# 使用 ScottPlot 库

  • Visual Studio 2022使用MinGW来编译调试C/C++程序的图文教程

    目录 一.创建项目 二.配置CMake 三.配置调试 Visual Studio的新版本已经可以像VSCode一样创建CMake项目了,但是默认的情况下是使用的Visual Studio编译器及调试器不包括MinGW中的工具集,参见下面的默认可选工具集: 本文就以实例来简单介绍一下VS2022中如何使用MinGW来编译.调试C/C++程序. 一.创建项目 首先,创建一个新项目: 然后,选择CMake项目: 填写项目名称,比如test 项目创建好后如下所示,由于笔者并未安装VS的Windows C

  • Visual Studio 2022 配置 PCL 1.12.1 的问题小结

    目录 一.声明 1.1一些pcd文件分享 二.初步操作 2.1安装pcl,OpenNI2: 2.2环境变量: 三.Visual Studio中的操作 3.1包含目录: 3.2 库目录: 3.3 附加依赖项: 3.4 预处理器定义: 3.5 SDL检查 3.6 测试代码 四.最后 一.声明 个人目的是运用点云pcl,所以没有太深入,而且这仅仅只是我在安装过程中的一些经验总结,包括了一些需要注意的地方,以及个人觉得不错的教程推荐,如果有什么错误(当然都是自己新机操作实践过没有问题的).不足还请多多包

随机推荐