Difference between revisions of "C programming/Structures"
From Teknologisk videncenter
m (New page: =Basic structrues= ==Example 1== Create and instantiate a structure <source lang=c> #include <stdio.h> #include <stdlib.h> struct coor { int x; int y; }; int main( void ) { struct ...) |
m (→Example 2) |
||
Line 23: | Line 23: | ||
</source> | </source> | ||
==Example 2== | ==Example 2== | ||
− | Same as example 1, but using as [C_programming/typedef|typedef]] | + | Same as example 1, but using as [[C_programming/typedef|typedef]] |
<source lang=c> | <source lang=c> | ||
#include <stdio.h> | #include <stdio.h> | ||
Line 45: | Line 45: | ||
</source> | </source> | ||
+ | |||
==Example 3== | ==Example 3== | ||
In example 3 the memory is reserver with [[C_programming/malloc|malloc]] and [[C_programming/indirect addressing|indirect addressing]] is used to access the structure. | In example 3 the memory is reserver with [[C_programming/malloc|malloc]] and [[C_programming/indirect addressing|indirect addressing]] is used to access the structure. |
Revision as of 14:10, 21 November 2010
Basic structrues
Example 1
Create and instantiate a structure
#include <stdio.h>
#include <stdlib.h>
struct coor {
int x;
int y;
};
int main( void ) {
struct coor place;
place.x = 17;
place.y = 19;
printf("Tallet er %i\n",place.x+place.y);
return(0);
}
Example 2
Same as example 1, but using as typedef
#include <stdio.h>
#include <stdlib.h>
struct coor {
int x;
int y;
};
typedef struct coor coordinate;
int main( void ) {
coordinate place;
place.x = 17;
place.y = 19;
printf("Tallet er %i\n",place.x+place.y);
return(0);
}
Example 3
In example 3 the memory is reserver with malloc and indirect addressing is used to access the structure.
#include <stdio.h>
#include <stdlib.h>
struct coor {
int x;
int y;
};
typedef struct coor coordinate;
int main( void ) {
coordinate *place = malloc(sizeof(coordinate));
(*place).x = 17; /* One form of indirect addressing shown */
place->y = 19; /* Another form of indirect addressing shown */
printf("Tallet er %i\n",place->x+place->y);
return(0);
}