Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Feb 2, 1998

Variable-length data in structs

Question:
Can I have variable length fields in a structure. I have tried something like:

typedef struct {
  int length;
  char data[length];
};

but that won't compile. Is there a way, or do I just have to use some pointers?

Answer:
You can declare a structure like this:

typedef struct {
  int length;
  char data[1];
} DATA;

Then when you allocate memory for the structure, you can adjust its size like this:

pStruct = (DATA*)malloc(sizeof(DATA) + nLength);
Even though you declared the data member as being only one character, C will allow you to access the bytes that follow.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date