![](/img/trans.png)
[英]How to extract words from a string array in c language and store it in another 1-d array? I don't want to use pointers
[英]I want to add info in a array of structures from a void function but i think i don't use the pointers right
所以我有这些结构,这样我的信息就被存储了
typedef struct date {
int day, month, year;
} date;
typedef struct director_info {
char *director_surname, *director_name;
} director_info;
typedef struct movie {
int id;
char *title;
director_info *director;
date *release_date;
} movie;
我有这个功能是为了添加新信息,但在虚空中所做的改变不会在主要结构中改变......有什么想法吗?
void addMovie(movie *movies, int n)
{
int len;
char tmptitle[MAXN],tmpsur[MAXN],tmpname[MAXN];
date tmpdt ={.day=0};
date *newdate;
char stringToWrite[80];
movies[n].id=movies[n-1].id+1;// dinw id sthn kainouria ekxwrish
movies = (movie *) malloc(sizeof(movie));
printf("Enter title:");
scanf("%s", &tmptitle);
len=strlen(tmptitle);
movies[n].title = malloc (len + 1);
memcpy (movies[n].title,tmptitle, len + 1);
director_info *newinfo;
//newinfo = malloc (sizeof *newinfo);
newinfo = (director_info*) malloc(sizeof(director_info));
newdate = (date*) malloc(sizeof(date));
printf("Enter the surname of the director:");
scanf("%s", &tmpsur);
len = strlen (tmpsur);
newinfo->director_surname = malloc (len + 1);
memcpy (newinfo->director_surname, tmpsur,len + 1);
memcpy (movies[n].director->director_surname,tmpsur, len + 1);
printf("Enter the name of the director:");
scanf("%s", &tmpname);
len= strlen (tmpname);
free(newinfo);
newinfo->director_name = malloc(len + 1);
memcpy (newinfo->director_name,tmpname, len + 1);
memcpy (movies[n].director->director_name,tmpname,len + 1);
// movies[n].director = newinfo;
// printf("%s",movies[n].director);
printf("Enter the year of release_date:year/month/day \n");
scanf("%d%d%d", &tmpdt.year,&tmpdt.month,&tmpdt.day);
printf("done\n");
newdate->day = tmpdt.day; /* populate date struct from tmpdt struct */
newdate->month = tmpdt.month;
newdate->year = tmpdt.year;
//len=sizeof(newdate);
// movies[n].release_date = malloc(len + 1);
movies[n].release_date = newdate;
}
我认为使用 mempcy 会直接分配,但是当我尝试打印主函数中的条目时,我输入的所有内容都是空或 0
你不会对电影失去控制吗? 做的时候
movies = (movie *) malloc(sizeof(movie));
在我看来,您正在删除您从这一行作为参数传递的任何数据的本地副本
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.