S1E18,动态数组
本帖最后由 小迪 于 2017-8-31 10:54 编辑刚开始我是拒绝的,因为VS2013不支持
http://a3.qpic.cn/psb?/V142tIWA265iLX/AYB3oEFaIcT.FltyZJtm4X3PHIEKzcBi8hyMS40sPzM!/b/dB4BAAAAAAAA&ek=1&kp=1&pt=0&bo=gAK*AoYCxgIDIHo!&su=010963201&tm=1504144800&sce=0-12-12&rf=2-9
具体的原因,我也不知道,应该是不支持C99,好吧。。。。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// c99标准支持动态数组
int main()
{
int n ;
printf("请输入字符的个数:");
scanf("%d", &n);
char a;
printf("请开始输入字符:");
getchar();
for (int i = 0; i < n; i++)
{
scanf("%c", &a);
}
a = '\0';
printf("你输入的字符串是:%s", a);
return 0;
}
还有一个就是数组的越界问题:
http://a1.qpic.cn/psb?/V142tIWA265iLX/VJthECN33flXDJe6GRzEaLN8RXI3r6FwwFNzLqXk1oM!/b/dEQAAAAAAAAA&ek=1&kp=1&pt=0&bo=zQWAAvkFkwIDMDI!&su=0149230545&tm=1504144800&sce=0-12-12&rf=2-9
VS2013中C不支持坐标越界,也就是说并没有越界保护机制,直接会报错。
int main()
{
int a;
for (int i = 0; i <= 10; i++)
{
a = i;
}
for (int i = 0; i < 10; i++)
{
printf("%d\n", a);
}
return 0;
}
这个是根据编译器来的,编译器想干啥就干啥,估计VS2013的编译器比较想让我们查BUG把
就到这吧
页:
[1]