Solved

Something about pointers

Posted on 2000-04-13
7
186 Views
Last Modified: 2010-04-15
Could anybody help on the ** pointers. I have something like this:
typedef struct MyStructure{
XXX **BBB;
YYY **CCC;
}MyStructure;
In fact, If anybody could explain to me how this struct works,it be'll great.
Thanks.
0
Comment
Question by:asma
7 Comments
 
LVL 1

Accepted Solution

by:
MT_MU earned 50 total points
ID: 2714505
For the sake of illustration - assume XXX is actually char.

If we were to assume that that BBB is appropriately initialized.  *BBB would point to the addess of a string.

**BBB would point to the first character of the string pointed to by *BBB.

And for example....

char *Str1 = "1String";
char *Str2 = "2String";
char *Str3 = "3String";

MyStructure xyz;

xyz.BBB = (char **)malloc(sizeof(char *) * 3);
      
// Fill in our array

xyz.BBB[0] = Str1;      // This is the equivalant of *xyz.BBB = Str1;
xyz.BBB[1] = Str2;
xyz.BBB[2] = Str3;

// Loop through the strings...

char **strptr = xyz.BBB;

for (int i = 0; i < 3; i++)
{
  char* onestring = *strptr++;
}


free(xyz.BBB);
0
 
LVL 1

Expert Comment

by:mournblade
ID: 2714562
a pointer is a variables that contains an address. at that address is a value of the type XXX in your case.

now, if you have a double pointer, it means that the variable points to a place in memory where a pointer to XXX (or YYY) resides.

so you have

BBB of type XXX** points to -> a type XXX* that points to -> a value of type XXX

hope it's clear enough
0
 

Author Comment

by:asma
ID: 2714564
MT_MU,
I'm new to pointers & structures. In fact, my C knowledge are basic ones.If it get complicated, i'll be lost. Is there a good C bible out there that teaches you all these jargon?
0
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 
LVL 1

Expert Comment

by:MT_MU
ID: 2714681
I kind of hate to admit this - but it's been so long since I started programming that I've forgotten what books seemed to help.  

I'll take a look and see if I still have some.

0
 
LVL 14

Expert Comment

by:AlexVirochovsky
ID: 2714736
Asma,write your EMail and i 'll send you pointer tutorial.
Alex
0
 

Author Comment

by:asma
ID: 2714789
My email is asmawati@yahoo.com
0
 
LVL 8

Expert Comment

by:stochastic
ID: 2714836
asma,

You could try this book:
This is a wonderful book, especially if you want to do self-study.


The C Programming Language: ANSI C Version
Brian W. Kernighan  Dennis M. Ritchie

Paperback, 2nd ed., 272pp.
ISBN: 0131103628
Publisher: Prentice Hall
Pub. Date: May  1988
Price is about $40 to $60, depending on the binding and edition.

- stochastic

 
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
The goal of this video is to provide viewers with basic examples to understand how to create, access, and change arrays in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question