【发布时间】:2021-04-15 02:02:54
【问题描述】:
#include<stdio.h>
#include<stdlib.h>
//structure defined
struct date
{
char day[10];
char month[3];
int year;
}sdate;
//function declared
void store_print_date(struct date *);
void main ()
{
struct date *datePtr = NULL;
datePtr = &sdate;
store_print_date(datePtr); // Calling function
}
void store_print_date(struct date *datePtr)
{
datePtr->day = "Saturday"; // error here
datePtr->month = "Jan"; // same here
datePtr->year = 2020;
}
【问题讨论】:
-
请使用
strcpy()复制字符串。无论如何,char month[3];不足以容纳 3 个字符(和以 null 结尾)的字符串。 -
它在 datePtr 上显示错误,我添加了错误注释......并且错误是说“表达式必须是可修改的左值”
-
"Saturday"解析为一个指针,但datePtr->day是一个数组。可以修改datePtr->day[0]等,但不能修改datePtr->day。
标签: arrays c function pointers struct