C++ 结构体初始化

报[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; 
}