Click here to Skip to main content
12,949,083 members (61,145 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
Hi to everyone,

I have very basic doubt in Pointer.

I have declared a variable like this
int **value;


Book Definition:
value = &anotherpointer;


But I have used the same double pointer for storing data in two dimensional array.

I have given a sample code below:
value = (int **) malloc(sizeof(int)*2);
value[0] = (int *)malloc(sizeof(int) *2);
value[1]= (int *)malloc(sizeof(int)*2);


This above syntax is working fine with my program.

Basically, i have tried to create a dynamic two dimensional array of size (2X2).

The above syntax of creating dynamic array works fine for all user defined and built-in data types.

Please let me know how memory will be allocated if i tried to create a dynamic structure pointer or other data types of size (example 10).

Please let me know whether i have used the pointer correctly or not?

And let me know the reason. Looking forward for your replies....
Posted 28-Aug-12 23:25pm
Updated 28-Aug-12 23:28pm
CPallini402.6K
v2

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Yes, you may use a double pointer to store the address of another pointer as well for creating a matrix, the compiler won't complain. :-)

The memory you are going to use does actually depend on the malloc statements.

Plaese note:
balasubramaniyan94 wrote:
value = (int **) malloc(sizeof(int)*2);


The above line is wrong, it should be
value = (int **) malloc(sizeof(int *) * 2);


(You are lucky if, as often happens, sizeof(int) == sizeof(int *)).
  Permalink  
Comments
Mihai Vrinceanu 29-Aug-12 9:00am
   
On 32 bit operating systems, sizeof(int) is 4 and sizeof(int*) is 4.
On 64 bit operating systems, sizeof(int) is 4 and sizeof(int*) is 8.
For storing a 64 bit address, you need 8 bytes: 8 bytes * 8 bits/byte = 64 bits.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 5,489
CHill60 3,330
Maciej Los 2,913
Jochen Arndt 1,935
ppolymorphe 1,820


Advertise | Privacy | Mobile
Web02 | 2.8.170524.1 | Last Updated 29 Aug 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100