簡體   English   中英

下標值既不是數組也不是指針

[英]subscripted value is neither array nor pointer

我正在編寫一個C程序,其中正在使用IPC管道數組。我收到錯誤消息“下標值既不是數組也不是指針”。有人可以告訴我我在哪里出錯了嗎?

這是我得到錯誤的代碼:

  int p[100][2];
  //in for loop
  pipe(p[i-1]);
  //in child process
  close(p[i-1][0]);
  write(p[i-1][1], out, sizeof(NODE));
  //in parent process
  close(p[j][1]);
  ead(p[j][0], tmp, sizeof(NODE));

專家提示:解決C語言中的構建錯誤時,請不要在列表中選擇任何隨機錯誤並嘗試對其進行修復。 從產生的第一個錯誤開始,因為這很可能是隨之而來的許多其他錯誤的根本原因。

您必須在代碼的其他地方出現語法錯誤,該語法錯誤會拋棄int p[100][2]的聲明,以便標識符p不能正確地解析為在堆棧上分配的int類型的二維數組(或靜態分配為全局變量...您沒有提到它的聲明位置。) 由於未正確解析標識符,因此它還會引發代碼中其他所有p使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM