鱼C论坛

 找回密码
 立即注册
查看: 2758|回复: 0

[技术交流] S1E18,动态数组

[复制链接]
发表于 2017-8-31 10:52:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小迪 于 2017-8-31 10:54 编辑

刚开始我是拒绝的,因为VS2013不支持



                               
登录/注册后可看大图


具体的原因,我也不知道,应该是不支持C99,好吧。。。。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


//        c99标准支持动态数组


int main()
{
        int n ;


        printf("请输入字符的个数:");
        scanf("%d", &n);


        char a[n + 1];


        printf("请开始输入字符:");
        getchar();


        for (int i = 0; i < n; i++)
        {
                scanf("%c", &a[i]);
        }


        a[n] = '\0';
        printf("你输入的字符串是:%s", a);






        return 0;
}





还有一个就是数组的越界问题:



                               
登录/注册后可看大图



VS2013中C不支持坐标越界,也就是说并没有越界保护机制,直接会报错。

int main()
{
        int a[10];


        for (int i = 0; i <= 10; i++)
        {
                a[i] = i;
        }


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






        return 0;


}



这个是根据编译器来的,编译器想干啥就干啥,估计VS2013的编译器比较想让我们查BUG把


就到这吧


评分

参与人数 1鱼币 +1 收起 理由
小甲鱼 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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