数据结构vs2017写代码报错

代码是teacher讲的,别的同学和我的代码一样,但没有报错
#include
#include
#include
#define MAXSIZE 100
typedef struct
{
char str[MAXSIZE];
int length;
}seqstring;
seqstring *substring(seqstring S, int i, int len)
{
int k;
seqstring r;
if (i<1 || i>S.length || i + len - 1 > S.length)
{
printf("error\n");
return(NULL);
}
else
{
r = (seqstring
)malloc(sizeof(seqstring));
for (k = 0; k < len; k++)
r->str[k] = S.str[i + k - 1];
r->length = len;
r->str[r->length] = '\0';
}
return(r);
}
int main()
{
seqstring s1, *ns;
int i, len;
printf("请输入一个字符串:");
gets(s1.str);
printf("请输入在主串中要截取的位置和长度,用空格隔开:");
scanf("%d%d", &i, &len);
ns = substring(s1, i, len);
printf("截取到的字串为:");
puts(ns->str);
}

img