[英]Subscripted value is neither array nor pointer nor vector at array index
[英]subscripted value is neither a array nor a pointer nor a vector
我有如下代碼:
typedef struct widgest_s{
int WidgetId;
void *ItsPage;
}widget;
typedef widget Array_Type_Widget[3];
typedef struct Page_Type_s{
bool PageActive;
Array_Type_Widget Widgetlist;
Array_PageKeyTable PageKeys;
}Page_Type;
void init_main_page(const Page_Type* page)
{
Page_Type* loc = page;
update_pagewidget(&loc, &MainPageWidget);
}
void update_pagewidget( void *page, WidgetPtr Ptr)
{
Page_Type* loc_page = (Page_Type*)page;
for (int i = 0; i<3; i++)
{
(*loc_page->Widgetlist)[i] = Ptr(i);
}
}
我正在嘗試訪問小部件列表的數組。 Ptr 是回調 function ,它返回類型小部件。 所以在嘗試訪問小部件數組時,我在“(*loc_page->Widgetlist)[i] = Ptr(i)”行出現錯誤
在這個表達式中
*loc_page->Widgetlist
數組指示符Widgetlist
被轉換為指向其第一個元素的指針。 因此,取消引用指針,您會得到一個不是數組的類型widget
的 object。 因此,您可能不會將下標運算符應用於 object。
看來你的意思
loc_page->Widgetlist[i] = Ptr(i);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.