Holding strings in a fixed size array is inefficient use of memory. A more efficient approach would be to use pointers. Pointers are used in structures in exactly the same way they are used in normal pointer definitions.

Data Recovery PRO DATA DOCTOR

Home | Order Online | Downloads | Contact Us | Software Knowledgebase

it | es | pt | fr | de | jp | kr | cn | ru | nl | gr


Having defined the structure, you can declare an instance of it and assign values to the members using the dot notation. The following example illustrates the use of the month structure.

#include <stdio.h>
#include <string.h>
struct month
{
char name[10];
char abbreviation[4];
int days;
};

int main()
{
struct month m;
strcpy(m.name, "January");
strcpy(m.abbreviation, "Jan");
m.days = 31;
printf("%s is abbreviated as %s and has %d days\n", m.name, m.abbreviation, m.days);
return 0;
}

The output of the program will be as follows:

January is abbreviated as Jan and has 31 days


All ANSI C compilers allow you to assign one structure to another, performing a member-wise copy. If we had month structures called m1 and m2, then we could assign the values from m1 to m2 with the following:

  • Structure with Pointer Members.
  • Structure Initializes.
  • Passing a Structure to a Function.
  • Pointers and Structures.

Structures with Pointer Members in C

Holding strings in a fixed size array is inefficient use of memory. A more efficient approach would be to use pointers. Pointers are used in structures in exactly the same way they are used in normal pointer definitions. Let us see an example:

#include <string.h>
#include <malloc.h>

struct month
{
char *name;
char *abbreviation;
int days;
};

int main()
{
struct month m;

m.name = (char *)malloc((strlen("January")+1) *
sizeof(char));
strcpy(m.name, "January");

m.abbreviation = (char *)malloc((strlen("Jan")+1) *
sizeof(char));
strcpy(m.abbreviation, "Jan");

m.days = 31;

printf("%s is abbreviated as %s and has %d days\n",
m.name, m.abbreviation, m.days);

return 0;
}

The output of the program will be as follows:

January is abbreviated as Jan and has 31 days


Sample Chapters from book DATA RECOVERY WITH AND WITHOUT PROGRAMMING by Author Tarun Tyagi
Data Recovery with & without Programming


Publishers of the Book
Number of Pages
ISBN
Price of the Book


BPB Publications, New Delhi, India
540
81-7656-922-4
$69.00 (Including Shipping Charges, Cost of Book and Other expenses, Free Source Code CD included with the Book)





Buy Data recovery Book

Previous page

page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20

 
 

page 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37

 
 

page 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54

 
 

page 55 | 56 | 57 | 58 | 59 | 60

Next page

© Copyright 2002-2005 DataDoctor.Biz

Home | Contact us | Downloads | Services | Terms and conditions | Site map

Website Data Recovery | recuperación de Datos | Récupération de données | Datenrettung | Recupero dati | データ復旧 | 데이터 복구 | 数据恢复 | Восстановление данных | De terugwinning van gegevens | Ανάκτηση δεδομένων
Sitemap Site map1 2 3 4 | Spanish1 2 3 | French1 2 3 | German1 2 3 | Italian1 2 3 | Portuguese1 2 3 | Japanese1 2 3 | Korean1 2 3 | Chinese1 2 3 | Russian1 2 3 | Dutch1 2 3 | Greek1 2 3
Data Recovery Book English | Spanish | French | German | Italian | Portuguese | Japanese | Korean | Chinese | Russian | Dutch | Greek