I was just working on a little programming project, and I got a fairly common error about something being undeclared:
MP_HighLevelData.c:230:15: error: ‘RemovedUser’ undeclared (first use in this function) Thinking I had just forgotten to declare the variable, I went along to the line in my source file, and found that the error was pointing at this line of code:
User *RemovedUser; Odd, I can't declare a new variable because it doesn't exist? I'm sure it's not specifically this line of code that's at fault, so here's a more complete code snippet. I'd really like to know what I've done wrong.
void RemoveUserFromGameRoom(User *User) { if (User->GameRoom != NULL) { GameRoom *GameRoom = User->GameRoom; if (GameRoom->Owner == User) { // We should delete the whole game room, since the owner is leaving and a new owner isn't chosen automatically while (GameRoom->UsersHead != NULL) { // Awesome way of looping while there are users left in the room // We need to get rid of all the users in this game room, including the owner, before we can remove it User *RemovedUser; RemovedUser = GameRoom->UsersHead->User; DeleteUserPtrFromGameRoom(GameRoom->UsersHead); // Remove reference to the user from the game room RemovedUser->GameRoom = NULL; // Remove reference to the game room from the user (needs to be set afterwards, whoops) } // All the users have been kicked out, now we can take care of the game room FreeRIDfromGameCategory(GameRoom->RID, User->GameCategory); ClearGameRoomName(GameRoom); DeleteGameRoomFromGameCategory(GameRoom, User->GameCategory); } else { UserPtr *UserPtr = GameRoom->UsersHead; while (UserPtr != NULL) { if (UserPtr->User == User) { DeleteUserPtrFromGameRoom(UserPtr); User->GameRoom = NULL; break; } UserPtr = UserPtr->next; } } } }
user is not a type