Hello There, Guest! RegisterLogin with Facebook
Login with Facebook

Anna University TNEA 2018 Rank List Published. Login to know your Rank.
Anna University April May 2018 Exam Results
Anna University Latest News , Updates and Announcements
>>> Anna University Sixth Semester Question Bank Collection (R2013) ECE,MECH,CSE,IT,EEE,CIVIL,EIE
>>> Anna University Study Materials for all Departments
>>> Anna University Question Papers : April May June 2015 Question Papers | Nov Dec 2014 and Jan 2015 Question Papers

Register or Login to Submit Study Materials , Shoutbox and also to access Many Features !!

Vidyarthiplus Shop :: Handwritten Premium Lecture Notes
Share your Study Materials with us
Share your Study Materials with us : Click Here

Computer Practice Lab -II (2) - C programs with explanation
#1


Anna university
Computer Practice Lab -II (2) - C programs with explanation




ILLUSTRATION OF malloc() FUNCTION


SOURCE CODE: malloc --- memory allocation


Code:
#include
#include
main()
{
int *i,*n,size;       i and n----pointer variables
printf("\nEnter the size :");
scanf("%d",&size);   // value for variable size is obtained

n=(int *)malloc(size * sizeof(int));   //memory is allocated for variable n.
          in the sample  output given below the value of size is 3.memory for int is 2 bytes.   So 3*2 6 bytes of memory will be allocated  for n  and n will hold the address of first byte.
    
printf("\nAddress of First byte is :%u",n);   //address of first byte is printed
printf("\nEnter the values :");
for(i=n;i< span="">
scanf("%d",i);//scanf statement is executed repeatedly until the condition in for loop is true
iteration 1: i=n ,so i=164700168
i<164700168+3="" is="" span="" true<="">
scanf statement is executed, first value is obtained and stored in address 164700168

iteration 2: i++ ,so i=1647001689
i<164700168+3="" is="" span="" true<="">
scanf statement is executed, second value is obtained and stored in 164700172 (for pointer variable of any data type the address is incremented by 4 bytes)

iteration 3: i++ ,so i=1647001670
i<164700168+3="" is="" span="" true<="">
scanf statement is executed, third value is obtained and stored in164700176 (for pointer variable of any data type the address is incremented by 4 bytes)

printf("\nPrinting the values :");
for(i=n;i< span="">
printf("\n%d is stored in address %u",*i,i);  //printf statement is executed repeatedly until the condition in for loop is true
iteration 1: i=n ,so i=164700168
i<164700168+3="" is="" span="" true<="">
printf statement is executed, first value is printed using *i(value of i) and address is printed by using i (address)
iteration 2: i++ ,so i=1647001689
i<164700168+3="" is="" span="" true<="">
printf statement is executed, second value is printed using *i(value of i) and address is printed by using i (address)
iteration 3: i++ ,so i=1647001670
i<164700168+3="" is="" span="" true<="">
printf statement is executed, third value is printed using *i(value of i) and address is printed by using i (address)
free(0);   //allocated memory is released
}

OUTPUT:

Enter the size :3
Address of First byte is :164700168
Enter the values :1
2
3
Printing the values :
1 is stored in address 164700168
2 is stored in address 164700172
3 is stored in address 164700176


ILLUSTRATION OF calloc() FUNCTION


calloc allocate memory for derived datatype like arrays,structure..


Code:
#include
#include
#include
main()
{
char *str=NULL;

str=(char *)calloc(20,sizeof(char));  // 20 bytes memory is allocated to variable str
         size of char is 1 byte, so for 20 characters 20 bytes is allocated

strcpy(str,"ENGINEERING COLLEGE");  //the text “ENGINEERING COLLEGE” (18 bytes) is copied to str.the size of str is 20 bytes ,so it can hold the text

printf("RMD %s\n",str); //content of str is printed along with RMD

free(str);  //allocated memory is released
return 0;
}


OUTPUT:

[harita@localhost c]$ cc calloc.c
[harita@localhost c]$ ./a.out
RMD ENGINEERING COLLEGE

ILLUSTRATION OF realloc() FUNCTION
Realloc—allocated memory can be reallocated


Code:
#include
#include
#include
main()
{
char *p;

p=(char *)malloc(6); //6 bytes memory is allocated to the variable p.
for a single character 1 byte memory is allocated, so for 6 characters 6 bytes is allocated

strcpy(p,"MADRAS"); // the text MADRAS(6 bytes)  is copied to p

printf("\nMemory contains : %s\n",p); //the string MADRAS is printed

p=(char *)realloc(p,7); // memory  of variable p is reallocated as 7 bytes

strcpy(p,"CHENNAI"); // the text CHENNAI (7 bytes) is copied to p

printf("Memory now contains : %s\n",p); // string CHENNAI is printed

free(p);  //allocated memory is released
}


OUTPUT:

[harita@localhost c]$ cc realloc.c
[harita@localhost c]$ ./a.out


Memory contains: MADRAS
Memory now contains: CHENNAI


CREATION OF A FILE AND READING ITS CONTENTS


A file is created
Text is given to the file
Text is read from file and printed in the output screen

Code:
#include
main()
{
FILE *fp1; // a file is created with name fp1
int age,i,n;

char filename[25],name[25]; //string delaration
float salary;
printf("\nEnter the File Name \n");

scanf("%s",filename); //filename is obtained as input

fp1=fopen(filename,"w"); // file is opened and its mode is changed to ‘write’
according to sample output : ponnuviji file is opened and its mode is write and assigned to fp1. So text can be entered in the file.

printf("\nEnter the Number of Employees :");
scanf("%d",&n);
printf("\nEnter the Name,Salary and Age\n");
for(i=1;i<=n;i++)
{
   fscanf(stdin,"%s%f%d",name,&salary,&age);//fscanffile scanf
       ponnuviji file will read the input for variables name,salary,age
   fprintf(fp1,"%s\t\t%f\t\t%d\n",name,salary,age); //fprintffile printf
          the content read is written into file ponnuviji
}
fclose(fp1);//opened file is closed
//fprintf(stdout,"\n\n");
fp1=fopen(filename,"r"); //again the file is opened and its mode is changed to read

printf("\nName\t\tSalary\t\tAge\n\n");
for(i=1;i<=n;i++)
{
   fscanf(fp1,"%s%f%d",name,&salary,&age); //values of variables name,salary and age is read from file
  
fprintf(stdout,"%s\t\t%f\t%d\n",name,salary,age); //data is retrieved from file and printed in the output screen
}
fclose(fp1); //opened file is then closed
}

OUTPUT:
[harita@localhost c]$ ./a.out
Enter the File Name
ponnuviji
Enter the Number of Employees : 2
Enter the Name, Salary and Age
hrithin
75000
28
harsha
50000
25
Name Salary Age
hrithin 75000.000000 28
harsha 50000.000000 25

ILLUSTRATION OF fseek() and ftell() FUNCTIONS

Create a file named Sample.dat cat>Sample.dat ,give some text


Code:
#include
main()
{
long int a=0;
int c;
FILE *fptr; // a file is created with name fptr

fptr=fopen("Sample.dat","r"); // Sample.dat file is opened ,its mode is read and then assigned to fptr

if(fptr!=NULL) // condition is file should have content
{
  fseek(fptr,0L,0); // fseek sets the position of file to 0
  
while((c=getc(fptr))!=EOF) // getc(fptr) get a single character from fptr file
   putchar(c); // put or write a single character on screen
upto end of file the while loop is executed
fseek(fptr,0L,2); // changes the position of file
  
a=ftell(fptr); //ftell gives the position of fptr to a
  
printf("\nThe Size of the file is : %d",a);  //new position is printed
   rewind(fptr); // moves to the initial position  
  
a=ftell(fptr);// gives the position of fptr to a
   printf("\nThe Size of the file is : %d\n",a);
}
else
  printf("\nThe File does not exist\n");
  fclose(fptr);
}


OUTPUT:

[harita@localhost c]$ ./a.out
INDIA WINS ICC WORLD CUP 2011
The Size of the file is : 30
The Size of the file is : 0<><>



Reply

Subscribe


Recommend on Google



Vidyarthiplus Whatsapp