VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 672|回复: 6

[求助] 编译问题

[复制链接]
61_avatar_middle
在线会员 2017666 发表于 2017-8-20 02:21:47 | 显示全部楼层 |阅读模式
3驿站币
编译问题
编译问题

问题如图

同样的代码用vs2013 编译不了 解决方案提示如下

1>------ 已启动生成:  项目: c语法, 配置: Debug Win32 ------
1>  源.cpp
1>f:\projects\c语法\c语法\源.cpp(7): error C2057: 应输入常量表达式
1>f:\projects\c语法\c语法\源.cpp(7): error C2466: 不能分配常量大小为 0 的数组
1>f:\projects\c语法\c语法\源.cpp(7): error C2133: “a”: 未知的大小
1>f:\projects\c语法\c语法\源.cpp(15): error C2562: “main”:“void”函数返回值
1>          f:\projects\c语法\c语法\源.cpp(2) : 参见“main”的声明
========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

用另外一个sublime Text这个编译器就可以编译
我主要想用
int a=10;
然后使用数组把a框起来
int q[a];
可是同样的语法为什么在论坛下载的vs2013内编译不了?报错那么多 ,其实最关键还是这个数组的问题

新手 求教各位大神

代码如下
#include <stdio.h>
void main()


{
int w=20;
int a[w];

for(int q=0;q<10;++q)
{
        printf("%d---%d\n",q,a[q] );


}
return 0;

}



最佳答案

查看完整内容

关于使用 vs2013 scanf 会提示 改成 scanf_s,这个会讲解的! 在VS2013中,每次使用scanf都会报错:This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 给了两种解决办法,要不就是用scanf_s,要不就用_CRT_SECURE_NO_WARNINGS来处理不报错,为什么会出现这种原因呢? scanf()在读取时不检查边界,所以可 ...




上一篇:C++新手,求补全剩余部分
下一篇:VS2015修改项目没用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

01_avatar_middle
online_admins admin 发表于 2017-8-20 02:21:48 | 显示全部楼层
2017666 发表于 2017-8-20 02:33
还有个问题 就是为什么用其他编译器使用 scanf  直接输入scanf("",&);就可以

如果使用vs2013的话 解决 ...

关于使用 vs2013 scanf 会提示 改成 scanf_s,这个会讲解的!

在VS2013中,每次使用scanf都会报错:This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

给了两种解决办法,要不就是用scanf_s,要不就用_CRT_SECURE_NO_WARNINGS来处理不报错,为什么会出现这种原因呢?

scanf()在读取时不检查边界,所以可能会造成内存泄露,所以VS2013提供了scanf_s()来替代,在调用时,必须提供给scanf_s一个数字以表明读取多少位字符,用法为scanf_s("%c",&letter,sizeof(letter)),否则,即使Ctrl+F7和Ctrl+F5通过了,程序的运行结果也可能与自己所期望大相径庭的。

如果非要用scanf函数,那么通过以下两种方式可以禁止警告:
(1)右击项目——属性——C/C++——预处理器——预处理器定义中增加_CRT_SECURE_NO_WARNINGS,然后点确定,退出。
(2)在函数最顶头进行定义:#define _CRT_SECURE_NO_WARNINGS,也可以禁止报错警告。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

61_avatar_middle
ico_lz  楼主| 2017666 发表于 2017-8-20 02:33:27 | 显示全部楼层
还有个问题 就是为什么用其他编译器使用 scanf  直接输入scanf("",&);就可以

如果使用vs2013的话 解决方案提示要求加上                  scanf_s("",&);

这是编译器问题吗?还是什么问题啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

01_avatar_middle
online_admins admin 发表于 2017-8-20 08:25:08 | 显示全部楼层
如果定义普通的数组的话,数组的大小事先必须确定,所以数组的大小必须要为常量,你的数组大小定义的是一个变量 w,所以会报错了。将 int w = 20 改成 const int w=20 试试

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

61_avatar_middle
ico_lz  楼主| 2017666 发表于 2017-8-20 10:45:55 | 显示全部楼层
admin 发表于 2017-8-20 08:25
如果定义普通的数组的话,数组的大小事先必须确定,所以数组的大小必须要为常量,你的数组大小定义的是一个 ...

老大我是这个不明白 数组里 为什么同样的代码sublime Text 就可以完美编译

而用vs2013就不可编译 而刚好我在学视频教程也是用的sublime Text  而同样的代码就是教程内用到的

当我想放到vs2013上练习的时候 却发现编译不成功

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

01_avatar_middle
online_admins admin 发表于 2017-8-20 21:02:01 | 显示全部楼层
2017666 发表于 2017-8-20 10:45
老大我是这个不明白 数组里 为什么同样的代码sublime Text 就可以完美编译

而用vs2013就不可编译 而刚 ...

vs2013 已经支持 C++11 标准啦,而且从我学C/C++开始,就记得普通数组的大小要用常量来表示,不能用变量,这里面建议按照 vs2013 的标准来啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

61_avatar_middle
ico_lz  楼主| 2017666 发表于 2017-8-21 16:53:23 | 显示全部楼层
admin 发表于 2017-8-20 21:02
vs2013 已经支持 C++11 标准啦,而且从我学C/C++开始,就记得普通数组的大小要用常量来表示,不能用变量 ...

好吧 我知道了 谢谢老大

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-16 10:38

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表