vs2017编译报错,变量未初始化?

今天在写atcoder contest 080E - Young Maids时,在我的solve()函数里面总是说我的
down没有初始化,但是我明明在循环里面初始化了啊?
附上代码:

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

vector<int> ans;
int n;
const int INF = 0x3f3f3f;

void solve(vector<int> dir,int f,int s)
{
    if (dir.empty()) return;
    int maxhead = 0, cnt = 0,down;
    for (int i = 0; i < dir.size()-1; ++i) {
        if (dir[i] != f && dir[i] != s) {
            if (dir[i + 1] != f && dir[i + 1] != s) {
                if (dir[i] > maxhead) {
                    cout << "ok" << endl;
                    cout << i << endl;
                    maxhead = dir[i];
                    down = i;
                }
            }
        }
    }
    cout << down << endl;

    ans.push_back(dir[down + 1]); ans.push_back(dir[down]);
    vector<int> nex;
    for (int i = 0; i < dir.size(); ++i) {
        if (i != down && i!=down+1) {
            nex.push_back(dir[i]);
        }
    }
    solve(nex, f, s);
}

int main()
{
    vector<int> iv; int temp,goalf=INF,goals=INF;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> temp;
        iv.push_back(temp);
        if (temp < goalf && !(i%2)) {
            goalf = temp;
        }
    }
    int i;
    for (i = 0; iv[i] != goalf; ++i);
    for (int j = i + 1; j < n; ++j) {
        if (iv[j] < goals) {
            goals = iv[j];
        }
    }

    cout << goalf << " " << goals << endl;

    solve(iv,goalf,goals);
    reverse(ans.begin(), ans.end());
    for (int i = 0; i < ans.size(); ++i) {
        cout << ans[i] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}

望各位能指点一二,谢了

0
扫码支付0.1元 ×
其他相关推荐
编译器报错or告警---未初始化的变量
现象: vs开 SDL ,编译示例代码,按照逻辑 s_test应该是被分配空间了的,但是会报错。 观察实验: 这时候手动加个默认构造函数会过。成员变量声明方式改为  int c =1;也会过。 原理: 定义声明---大概是指这个过程,分配空间,赋初始值。有编译器赋初始值和码农赋初始值两种。有时候,为了保证码农知道自己做了什么,编译器会在使用未人工赋值的变量时,告警或者报错。 结论:
由一个未初始化点局部变量引发的血案
准备找工作面试了,复习复习归并排序。自己写了一个,漏洞百出,但是最致命点是。函数递归时很容易发生内核崩溃的问题。最开始我是怀疑由于指针越界引起的,检查一圈没有越界的情况。然后我就进一步怀疑是不是出现了死递归,但是也没有。优哉游哉,辗转反侧,万般无奈之下,我只看到一个未初始化的局部变量。我将这个倒霉的变量初始化后,问题解决啦。现在反过来看,其实还是指针越界啦。由于未初始化,所以变量初始值为垃圾数字,...
对于下面这个局部变量未初始化就使用的问题int x = x;
1.对于下面这个局部变量未初始化就使用的问题int x = x; 经调试,结果如下: int x = 5; int TestGlobal() {  int x = x;  return x; } 如果在Debug模式下,编译时“warning C4700: 使用了未初始化的局部变量“x””,运行时“Run-Time Check Failure #3 - The variable '
C++未初始化变量
个人主页:AnAoU.com最开始学习C/C++时候没有注意到这个问题,只是单纯的以为未初始化的变量,编译器默认给附了0的值。后来发现了很多问题,让我很懵逼,一直也没研究,比如你未定义个变量,它有时候初值会是乱码,有时候就会是0值,当初也没在意,但现在从头拾起C++的时候发现了其原因,和大家分享下。给大家看张图:我觉得这张图片说的很好,如果未初始化的变量为全局变量的话,编译器会默认给附上0的值,这...
C++未被初始化的局部变量
C++中被初始化全局变量在编译时保存在data段中,而没有被初始化的全局变量保存在bss段中。这样保存的理由是在data段的变量在编译生成的文件中需要分配空间存储变量值,而没有初始化保存变量(或初始化为0的静态变量、全局变量)其默认值为0,没必要将这些值均为0的变量存储在data段中,而采用bss段只是给未初始化的全局变量和局部静态变量预留位置,bss段并没有内容。但是在程序执行时这些变量会占用内
没有躲过的坑--程序中的变量未初始化
变量未初始化是C++编程中最为常见和易犯的错误之一。但是对于全局变量,我们可以不进行初始化,这个变量会默认的用零进行初始化,但是这通常不是一个好的习惯。我们今天先不探讨全局变量还是静态全局变量。那么对于一个全部变量来说,初始化为零和不初始化(编译器替我们初始化为零)又有什么区别吗?全局变量和局部变量初始化与不初始化的区别 即int x 和 int x=0的区别。int x =0; 跟 int x;
关于c语言中未初始化的变量
int变量未初始化的默认初值,和变量的类型有关。 1局部变量,在未初始化情况下,初值为随机值。C规范对该初值并没有做规定,具体实现由编译器决定。如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值,我用notepad++则为15. 2 静态局部变量,即带static修饰的局部变量。 全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。 这...
使用了可能未初始化的本地指针变量“xxx”
问题描述: 在用VS2013编译时出现下面的错误 error C4703: 使用了可能未初始化的本地指针变量“xxx” 问题分析: 在VS2013创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2013新推出的东西,为了是能更好的监管开发者的代码安全,如果勾选上这一项,那么他将严格按照SDL的规则编译代码,会有一些以前常用的函数无
C++函数内未初始化的变量
今天刷牛客的时候遇到了一个神奇的bug,也不能说bug吧,应该说是C++的特性。 这个特性就是,在一个函数体内声明但是未初始化的变量,将会拥有一些类似于静态变量的特性。举个例子:  ...
c++中变量未初始化的隐患
变量未初始化是C++编程中最为常见和易犯的错误之一。但是对于全局变量,我们可以不进行初始化,这个变量会默认的用零进行初始化,但是这通常不是一个好的习惯。我们今天先不探讨全局变量还是静态全局变量。那么对于一个全部变量来说,初始化为零和不初始化(编译器替我们初始化为零)又有什么区别吗?全局变量和局部变量初始化与不初始化的区别 即int x 和 int x=0的区别。int x =0; 跟 int x;...
C语言中的未初始化变量的值
C语言中未初始化的变量的值是0么 全局变量 、静态变量初始值为0局部变量,自动变量初始值随机分配 C语言中,定义局部变量时如果未初始化,则值是随机的,为什么? 定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的。
变量未初始化的可能性
这似乎更清楚了,值5只被赋值给变量B。 因为在一行上定义多个变量并初始化它们是错误的原因,我们建议您只在一行中定义多个变量,如果没有初始化其中的任何一个变量。 规则:在初始化任何一行时避免在一行上定义多个变量。 定义变量的地方 旧的C编译器强迫用户在函数顶部定义函数中的所有变量: int main() { // all variable up to
实例介绍利用valgrind定位变量未初始化的问题
继续介绍valgrind的用途, 看程序: #include #include int main() { int i; if(i == 0) { printf("[%d]\n", i); } return 0; }      一眼就能看出程序的问题, valgrind分析如下: [root@xxx ~/valgrind-3.8.1/bin]# g++ -g test.cp
关于未初始化全局变量
前几天发现未初始化全局变量一些特性,后来在一篇博客上发现有人说过这个问题 这是原博文地址 blog.csdn.net/liuqiaoyu080512/article/details/8455652 然后结合原博文,自己又做了几个实验 以下算是自己实验一遍以后的总结: 首先,自己曾经以为未初化的全局变量也要在程序(不是正在运行的进程)中占有空间,但是后来发现这是错的. 未初始化的全局
编程中经常发现使用未初始化变量,编译器原来可以处理进行默认初始化
1) prolog 中对于local varable进行处理 2)
下载的VS2017工程编译出错的问题
从别处下载来的VS2017工程,编译时报各种错,解决办法如下: 选择本机的SDK版本即可编译成功。      
c--变量未初始化
一、介绍 如果不能保证读取变量之前重置变量,就应该初始化变量。&quot;  -- 引自&amp;lt;&amp;lt;C++ Primer&amp;gt;&amp;gt;   二、示例代码 1、示例一 (1)输入某年某月某日,判断这一天是这一年的第几天? // #include &amp;lt;stdio.h&amp;gt; int main() { int year, month, day, sum; sum = 0;...
全局初始化变量/全局未初始化变量/全局静态变量/局部变量的存储位置,作用域,与生命周期
比如如下程序代码片段 int a = 0; char *p1; static int x = 10; int main(void) { int b = 0; char s1[] = &amp;quot;123&amp;quot;; char *p2; char *s2 = &amp;quot;123&amp;quot;; static int c =0; p1 = (char *)malloc(1...
未初始化的变量引起运行问题
结合几年来在C++编程中的遇到的问题,以及看了《C++ Primer Plus》这本书后觉得变量的初始化确实是一个值得重视的细节。先将原因列举出来: 内置类型变量的初始化 使用未初始化的变量是常见的程序错误,通常也是难以发现的错误。虽然许多编译器都至少会提醒不要使用未初始化变量,但是编译器并未被要求去检测未初始化变量的使用。而且,没有一个编译器能检测出所有未初始化变量的使用。有时我们很幸运,使
分享一个 变量没有初始化 可能带来的问题
先看 code: static void do_ctors_aux(void) { /* SGX RTS does not support .ctors currently */ fp_t *p = NULL; uintptr_t init_array_addr; size_t init_array_size; const void *en
java中变量未初始化
java中的变量未初始化,会出现什么问题呢,如果是基本数据类型,则会有初始值,如果不是,则一般是null,以下为测试结果 public class Test { String str; int a; char b; short s; float f; long lo; double dou; byte e; boolean flag; Object obj; public
return一个未初始化的局部变量
首先这不是一篇技术博客!其次,如果你不是大神,作为一个菜鸟级的码农,不要有强迫症,因为,额,你没资格,额,别对号入座,我说我自己的!说下问题,也是在HW比赛写代码的过程中,写的一个简单的函数,局部变量,由于没有良好的编程习惯,没有初始化局部变量,导致最后return回去的值和return前打印出来的值不一样(如果进行初始化的话,就没有这个问题了),IDE使用的KDevelop,这东西是使用的cma...
变量为初始化导致本地变量注入
/include/dedesql.class.php文件,搜索(大概在590行的样子)      if(isset($GLOBALS['arrs1']))      修改为      $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1']))      如果之前定义过$arrs1或$arrs2的,请调整比对代码。      至此...
未初始化全局变量
未初始化全局变量   为下一篇介绍进程内存分布做准备,这一篇先来介绍一下未初始化全局变量:   未初始化全局变量,这名字就很直白,就是 C 程序中定义成全局作用域而又没有初始化的变量,我们知道这种变量在程序运行后是被自动初始化为 全0 的。编译器编译的时候会将这类变量收集起来集中放置到 .bss 段中,这个段只记录了段长,没有实际上的内容(全是0,没必要存储),在程序被装载时操作系统会为它分
关于未初始化的变量传参数的问题
#include &amp;lt;stdio.h&amp;gt; void chuancan(int *s1,int *s2); int b; //全局变量 、静态变量初始值为0 void shiyan() { int s1,s2; printf(&quot;s1的值:%d s2的值:%d\n&quot;,s1,s2);// 部变量,自动变量初始值随机分配 printf(&quot;s1的地址:...
初始化的和未初始化的全局变量分别放在什么地方?BSS段的全称是啥?为啥用BSS 段,有啥好处
一.初始化的全局变量存放在数据段(data segment),数据段数据静态分配 二.未初始化的全局变量存放在bss段,BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 “未初始化”这一说法其实并不准确,虽然.bss段在编译出的目标文件中是不占 空间的,但是c语言假设在程序的执行之前,运行时启动代码或者操作系统会负责将.bss段清零,而且许多c语
javascript中未初始化的变量和未定义的变量的区别
var message;   alert(message); 结果 undefined   alert(age); 结果 报错   alert(typeof(message)); 结果 undefined   alert(typeof(age)); 结果 undefined   未初始化的变量和未定义的变量本质上有区别,但实际上我们都对它们执行真正的操作,所以typ
error C4703: 使用了可能未初始化的本地指针变量“xxx”
问题描述: 在用VS2013编译时出现下面的错误 error C4703: 使用了可能未初始化的本地指针变量“xxx” 问题分析: 在VS2013创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2013新推出的东西,为了是能更好的监管开发者的代码安全,如果勾选上这一项,那么他将严格按照SDL的规则编译代码,会有一些以前常用的函数无
关于C未初始化全局变量的连接问题
关于C语言全局变量定义在头文件中但是没有初始化也可以编译连接成功的问题!
为什么初始化的全局变量和未初始化的全局变量要保存在不同的段??
C规定,未初始化变量的初值为0,这个清0的操作是由启动代码完成的,还有已初始化变量的初值的设置,也是由启动代码完成的。 为了启动代码的简单化,编译链接器会把已初始化的变量放在同一个段:.data,这个段的映像(包含了各个变量的初值)保存在“只读数据段”,这样启动代码就可以简单地复制这个映像到 .data 段,所有的已初始化变量就都初始化了。 而未初始化变量也放在同一个段:.bss,启动代码简单
C++中一个局部变量,如果没有初始化,它的值是不可预期的?
C++中一个局部变量,如果没有初始化,它的值是不可预期的? 如下程序: 在Ubuntu系统中,如下: 在vs2010中
C中不同位置未初始化int变量默认值
转载请注明出处:             定义不同的int变量如果没有对其进行初始化其值是不同的:定义全局int变量未初始化其值默认是0;定义局部静态int变量未初始化其默认值也是0;定义局部非静态未初始化其默认值是不确定的;定义全局结构体中int未初始化其值默认是0;定义局部结构体中int未初始化其值也是不确定的。
error C4703: 使用了可能未初始化的本地指针变量“XXX”
1. 问题 在用VS2013中编译一个开源库是遇到以下错误: error C4703: 使用了可能未初始化的本地指针变量“xxx” 2. 分析 VS2013创建项目,会默认勾选安全开发生命周期(SDL)检查, 其功能是更好的监管开发者的代码安全,如果勾选这一项,那么编译时将严格按照SDL的规则编译代码, 导致,会有一些以前常用的函数无法通过编译,比如在VS2010中的scanf是war...
JavaScript中关于变量初始化和变量未定义
简单理解  变量未定义,就是根本没有var(声明)这个变量.                 而变量未初始化,其实也就是变量根本没赋值.               例如: 就是给变量赋值,然后对变量进行操作 var a=2; //变量初始化
未初始化的局部变量&nbsp;为什么随机值…
未初始化的局部变量 为什么随机值一样??? 为什么随机值一样" TITLE="未初始化的局部变量 为什么随机值一样" /> 为什么随机值一样" TITLE="未初始化的局部变量 为什么随机值一样" /> 我只想说,我没问题; 而对于一直出一个随机值,我想不明白~~~~
变量未初始化
"给变量一个初始值几乎总是正确的,但不要求必须这样做。当我们确定变量在第一次使用时会给变量一个新值,那就不需要创建初始值。例如,在1.2.2小节我们的第一个有意义的程序中,定义了未初始化变量,并立即读取值给它们。定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始化变量。"  -- 引自>今天写程序时遇到了变量未初始化带来的
darknet在VS2017下编译报错的解决方法
安装好CUDAv9.2和CuDNN后,发现VS2017编译darknet工程时,报如下错误: 查询相关资料后发现主要是由于CUDA驱动和VS2017不兼容导致了。在工程属性里面做如下修改即可:  ...
Fortran变量未初始化,该如何设置提醒?
程序中存在未经过初始化就引用的变量 使用Intel编译器时,未经初始化的自动变量在运行时会具有随机的初始值。由于语言标准和具体编译器实现的原因,某些平台上的编译器具有自动把未初始化的变量设为0的选项。那么在这类平台上开发进行Fortran程序开发的人员很可能会养成变量不初始化就加以引用的习惯。当这些程序被移植到新平台上后,由于Intel的编译器不支持这一功能,那么程序编译虽然可以通过,但运行时就会...
libwebsockets win7 vs2017 编译工程
libwebsockets-3.1.0(2019.04.06) 在win7下vs2017的完整编译工程。可编译出libwebsockets_static.lib。 注意事项 0.解决方案文件libwebsockets.sln位于build目录。 1.确保安装了openssl(版本不能大于1.1.0)。下载地址:https://slproweb.com/products/Win32OpenSSL.html 2.确保安装了cmake(版本2.6+)。下载地址:https://cmake.org/files/v3.10/ 3.确保设置了环境变量OPENSSL_CONF,值为C:\OpenSSL-Win64\bin\openssl.cfg(C:\OpenSSL-Win64视具体安装位置而定)。
变量未初始化时输出乱码的原因
初学C语言时老师警告的一个问题:变量定义时一定要赋值,否则直接使用时就会出现意想不到的后果。今天我们就来看看未初始化的变量里边是什么东西。        先看测试程序: #include int main(void) { int i; double d; printf("%d\n%lf\n", i, d); printf("%0X\n", i); printf("%0X\n
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 vs2017制作网页视频 java学习变量