我試圖填充項目類型「temp」與數組中的值「temp fields」(包含字符串)我得到的「表達式必須是可修改的左值「我的ptemp指針錯誤。表達式必須是一個可修改的左值結構指針
typedef struct _item {
char item_name[ITEM_NAME_LENGTH];
char department[DEPARTMENT_NAME_LENGTH];
char expiration_date[EXPIRATION_DATE_STRING_LENGTH];
double price;
int available;} Item;
Item create_item(char *s) {
Item temp, *ptemp;
ptemp = &temp;
char temp_fields[5];
int n = 0;
n = seperate_fields(s, "_*_", temp_fields);
ptemp->item_name = temp_fields[0];
任何人都可以解釋這是怎麼回事?即時嘗試修改指針指向的值。該假設是修改
我感謝任何人誰提前回答
爲項目創建編輯的代碼
Item create_item(char *s) {
Item temp, *ptemp;
char *ptrend;
char *temp_fields[5];
int n = 0;
ptemp = &temp;
n = seperate_fields(s, "_*_", temp_fields);
strcpy(ptemp->item_name, temp_fields[0]);
strcpy(ptemp->department,temp_fields[1]);
strcpy(ptemp->expiration_date, temp_fields[2]);
ptemp->price = strtod(temp_fields[3], &ptrend);
ptemp->available = atoi(temp_fields[4]);
return temp;
'ptemp-> item_name'是一個數組名稱。你不能分配它。 –
看來,這將是一個很好的時間來了解使用float和/或double時許多值和計算缺乏準確性您可能還想了解在數學中找到的round()函數.h,就像'ceil()'和'floor()' – user3629249
@ user3629249謝謝!! – Beginner