这里为啥会报错?
错误1:
为啥会报这种错误?

错误2:
s->data不就是data的数组名,那为什么不可以用sizeof计算数组的大小?如果要计算str除了在main里将大小传进来还有其他别的办法吗?

完整代码:
String.h:
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#define MAXSIZE
#include<stdio.h>
#include<string.h>
typedef struct {
char data[MAXSIZE];
int length;
}SqString;
void StrAssign(SqString* s, const char* str);
void DispStr(SqString s);
String.cpp:
#include"String.h"
void StrAssign(SqString* s, const char* str)
{
strcmp(s->data, str);
s->length = sizeof(s->data);
}
void DispStr(SqString s)
{
int i = 0;
printf(s.data);
}
test.cpp:
#include"String.h"
int main()
{
SqString s, s1, s2, s3;
printf("顺序串的基本操作如下:\n");
printf("(1)建立串s和串s1\n");
StrAssign(&s, "abcdefghijklmn");
StrAssign(&s1, "123");
printf("(2)输出串s:");
DispStr(s);
return 0;
}