我正在制作一个恢复管理程序。我想删除动态分配给 detail_an_item() 的指针数组中对应于 rlist[index - 1] 的值,但出现此错误。我该如何修复错误?
struct rest {
char food[TSIZE]; // case : Aglio e Olio
char kind; // case : R
int price; // case : 14000
};
void delete_an_item(struct rest *r_list, size_t *ptr_r_items){
// input_int() Defined and declared.
index = input_int();
if ((index >= 0 && index < *ptr_r_items) && index == 1){
r_list[index - 1].food = NULL; // error here
r_list[index - 1].kind = '\0';
r_list[index - 1].price = 0;
我不知道如何解决这个错误。告诉我怎么做。
index
未在此函数中定义/index - 1
但可能它将基于 1 的索引转换为 C 索引(从 0 开始)(index >= 0 && index < *ptr_r_items) && index == 1)
仅当 true
时才会评估为
index == 1
struct rest {
char food[TSIZE];
char kind;
int price;
};
void delete_an_item(struct rest *r_list, size_t *ptr_r_items)
{
size_t index = input_int();
if ((index >= 0 && index < *ptr_r_items) && index == 1){
r_list[index - 1].food[0] = 0; //food is now an empty string
r_list[index - 1].kind = '\0';
r_list[index - 1].price = 0;
}
}