Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9232103
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T06:14:01+00:00 2026-06-18T06:14:01+00:00

I am very new to c and pointers. Each time I thin k I

  • 0

I am very new to c and pointers. Each time I thin k I have understood it, there comes a problem that I don’t really understand (I spent some time reading c docs but pointers still remain unclear to me) :

typedef struct {
        int q[QUEUESIZE+1];
        int first;
        int last;
        int count;
} queue;

enqueue(queue *q, int x)
{
  if (q->count >= QUEUESIZE)
        printf("Warning: queue overflow enqueue x=%d\n",x);

  else {
    q->last = (q->last+1) % QUEUESIZE;
    q->q[ q->last ] = x;
    q->count = q->count + 1;
  } 
}

I hope my question will not be too opaque but could someone explain the use of pointer in enqueue function? I thought the principle of queuing was to allocate some precise successive memory addresses, but it is not that for sure….

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T06:14:02+00:00Added an answer on June 18, 2026 at 6:14 am

    enqueue takes a queue queue (queue of type queue) and add an element in it (which is made of an integer.

    queue *q is a pointer, since, probably

    • there could be more than one queue, and the parameter tells what queue we’re talking about
    • in order to avoid a global variable, the queue is given as parameter – we want a reference to the queue so that it can be modified, and the modification will stay live even after exiting enqueue

    Passing a queue by value, as

    enqueue(queue q, int x) { ...
    

    would mean

    • a lot of data given as parameter (copy of the queue myqueue to the q parameter)
    • when q is modified, the modification is made on q within the enqueue function.
      The initially provided queue (myqueue) as parameter would not be modified

    For instance

    enqueue(queue q, int x) { 
      q.count++; // only the local q.count is changed, not myqueue.count
      // ...
    }
    
    // ...
    
    queue myqueue;
    // ...
    enqueue (myqueue, 3); // enqueue changes its local parameter, myqueue is not affected
    

    Besides, the enqueue function implementation could be optimized… (see wildplasser answer below who suggests a better queue implementation)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Very new to python and can't understand why this isn't working. I have a
Please know that I'm still very new to C and pointers in general... This
Firstly, I am very new to function pointers and their horrible syntax so play
I am very new to WPF and needed some pointers as to why this
Very new to XSL (and XML for that matter), but I need to step
I have a very large point cloud (> 100000 points) that I'd like to
I'm very new to dealing with pointers, and my C knowledge is fairly small.
I have a c++ program that uses several very large arrays of doubles, and
Very new to C++ and Cocos2d-x but I was just toying around with CCArray
Very new to javascript and html-type stuff. I wanted to just make a quick

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.