报[Error] C99 designator 'str' outside aggregate initializer 求解决方法
#include<stdio.h>
#include<stddef.h>
#include<string.h>
typedef struct date
{
int i;
int j;
char str[30];
}date_t;
int main(void)
{
date_t s={.j=1,.str="this is a test"};
}
供参考:
#include<stdio.h>
#include<stddef.h>
#include<string.h>
typedef struct date
{
int i;
int j;
char str[30];
}date_t;
date_t s={0,1,"this is a test"};
int main(void)
{
printf("%s\n",s.str);
//date_t s={.j=1,.str="this is a test"};
return 0;
}
date_t s;
s.j = 1;
char *p= "this is a test";
memcpy(s.str,p,strlen(p));
你这么赋值不对,参考如下:
#include <string>
typedef struct date
{
int i;
int j;
char str[30];
}date_t;
int main(void)
{
char a[] = "abce";
date_t s;
s.i = 1;
s.j = 2;
memset(s.str,0,30); //需要string头文件
memcpy(s.str,a,strlen(a));
return 0;
}