c - 'newItem' 是一个指针;你的意思是使用'->'吗?
问题描述
嗨,我该如何解决这个错误?'newItem' 是一个指针;你的意思是使用'->'吗?
int insertItem(const struct item *newItem){
int i;
if(itemNo == maxItem)return(0);
if(searchItemById(newItem.id) != -1)return(-1);
for(i=itemNo-1;i>=0;i--)
if(newItem.id<itemList[i].id)
itemList[i+1]= itemList[i];
else break;
itemList[i+1] = newItem;
itemNo++;
return(2);
}
我的错在哪里?
解决方案
这 。(点)运算符和 ->(箭头)运算符用于引用类、结构和联合的各个成员。
点运算符应用于实际对象。箭头运算符与指向对象的指针一起使用。例如,考虑以下结构
因为newItem
是一个指针,如果你想访问它的成员,那么你必须使用 -> (arrow) :
newItem->member
或者,如果您仍想使用. (dot)
,请在访问其成员之前取消引用它:
(*newItem).member
推荐阅读
- wordpress - 无法让 nginx 在其他位置使用 wordpress
- azure - 了解 Kusto
- matplotlib - 渲染 MathText 以获取其边界框时 Matplotlib 内存泄漏
- angular - Angular 5 Datepicker(ngx-bootstrap)未显示
- python-3.x - 如何使用没有名称或 ID 的 selenium 向元素发送文本
- javascript - 如何从 fetch-node 函数返回字符串
- javascript - 使用 WKWebview 进行 iPhone swift 应用程序开发 - 如何在发生 javascript 事件时立即触发本地通知
- javascript - 试图分配给只读属性 | 反应原生
- c++ - b2Shape 等于 0xCDCDCDCD 并在创建夹具时抛出异常
- python - 在 Python 中读取 CSV 文件,然后附加到现有密钥