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

  • Home
  • SEARCH
  • 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 8696331
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T01:15:11+00:00 2026-06-13T01:15:11+00:00

I am having a tough time understanding the following piece of code: int stride

  • 0

I am having a tough time understanding the following piece of code:

int stride = 512;
int max_len = 1024 * stride; 
char *addr = (char *)malloc(max_len);
for (int i=stride; i<max_len; i += stride)
    *(char **)&addr[i-stride] = (char*)&addr[i];
*(char **)&addr[i-stride] = (char*)&addr[0];

Looking at the code it seems this is trying to create some kind of circular link list. But I have no clue what those casts are actually doing.

  • 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-13T01:15:12+00:00Added an answer on June 13, 2026 at 1:15 am

    IMHO the code you present is poor taste.

    *(char **)&addr[i-stride] = (char*)&addr[0]; is taking the pointer addr to some dynamically allocated zone (right part (char*)&addr[0] could have been written addr which is simpler), then copying that address to the memory located at position addr[i-stride].

    This actually could be wrong (undefined behavior), e.g. when &addr[i-stride] (which could be written addr+i-stride) is not word aligned on some processors. In your case i happens to be max_len and stride happens to be 512, so that address is word aligned (since malloc gives a well aligned zone).

    The original author of the code should perhaps have declared a struct (or maybe a union) like e.g.

     struct buffer_st {
        struct buffer_st* next;
        char content[];
     };
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm having hard time understanding the following C# code. This code was taken from
I am having a tough time understanding why the Scala compiler is unhappy about
I'm having a tough time understanding laziness. Can someone help me understand why my
I am having a tough time trying to find a solution to the following
I'm having a tough time figuring out why the following command is not being
I'm having a tough time understanding how the two interact and where the boundary
I'm having a tough time understanding the difference between various methods of the com.google.gwt.core.client.Scheduler
I have been doing some reading, and I'm having a tough time understanding how
I am reaching a bottleneck on my application and having a tough time finding
I'm pretty new to Backbone and Marionette and am having a tough time getting

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.