| Close | Back |
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<malloc.h>
int *get_D_array();
void main(void);
void percentage(void);
void print_rajesh(void);
int dataval();
int *invalid;
void main()
{
int i,j,n,found = 0,*array,k;
char input[25];
clrscr();
printf("\n<----------------------------------------->");
printf("\n| Dynamic memory allocation demonstartion |");
printf("\n<----------------------------------------->");
do
{
printf("\n\nHow many numbers:");
scanf("%s",input);
}
while(dataval(input) == 0);
sscanf(input,"%d",&n);
array = get_D_array(n,1);
printf("\n The numbers u entered were:\n");
for(k = 0 ; *(invalid + k) != -1 ; k++);
for(i=0;i<n;i++)
{
found = 0;
for(j = 0 ; j < k ; j++)
{
if(*(invalid + j) == i)
found = 1;
/* instead can use ------------ *(array + i) = 0;*/
}
if(found == 0)
{
printf("\t %d",*(array+i));
delay(300);
}
}
/* This is jus for fun ;) */
printf("\nThe memory is being freed.....\n");
percentage();
get_D_array(1,2);
printf("\nThe memory is now freed!");
/* Fun ends ;) */
printf("\n\nWaiting for you to hit a key........");
getch();
print_rajesh();
return;
}
int *get_D_array(num,mes)
int num,mes;
{
int i,j = 0;
static int *array;
char *input;
*invalid = -1;
switch(mes)
{
case 1:
array = malloc(sizeof(int *)*num);
printf("\nEnter the numbers:");
for(i=0;i<num;i++)
{
scanf("%s",input);
if(dataval(input) != 0)
sscanf(input,"%d",(array+i));
else
{
printf("\nThe number in position %2d is invalid\n",i+1);
invalid = malloc((sizeof(int *))*1);
*(invalid+j) = i;
j++;
}
}
*(invalid + j) = -1;
return array;
case 2:
free(array);
free(invalid);
return;
}
}
void print_rajesh()
{
clrscr();
printf("\nThis program made by :");
printf("\n\n\n\n\n\007");
printf(",##########. ,####. ,####.\n");
printf(":#############. `####; :####.\n");
printf(":#####. :#####. :####.\n");
printf(":#############; `#########. ,####. ,#######. ,########. :###########.\n");
printf(":############; :####. :####. ,###. :###. ,####. :#. :###########.\n");
printf(":##########. :#########. :####.,####. :####.`##########. :####. :####.\n");
printf(":###########. ,############. :####.:###########; `#########.:####. :####.\n");
printf(":############. :#####. :####. :####.`#####. :#####;:####. :####.\n");
printf(":#####. `###### ############. :####. `#########. ,#########; :####. :####.\n");
printf("`#####; `######; `##########; :####. `#####; `#######; `####; `####;\n");
printf(" #####");
printf("\n\n\n\tRajesh _ThE gReAt in 2k.....\n\n\n\t\t\tHit any key to continue.....");
for(;!kbhit();)
{
printf("\b");
delay(100);
printf("\b|");
delay(100);
printf("\b/");
delay(100);
printf("\b-");
delay(100);
}
printf("\b ");
return;
}
void percentage()
{
printf("\4");
printf(" 010%%");
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 020%%");
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 030%%");
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 040%%");
printf("\b\b\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 050%%");
printf("\b\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 060%%");
printf("\b\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 070%%");
printf("\b\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 080%%");
printf("\b\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 090%%");
printf("\b\b\b\b\b\b\b");
delay(150);
printf("\4");
printf(" 100%%");
printf("\b\b\b\b\b\b");
return;
}
int dataval(input)
char *input;
{
int i,n; /*i = index for FOR loop*/
for(n = 0;*(input+n) != '\0';n++); /*body less FOR loop to find null char*/
for(i = 0;i < n;i++)
{
if(isdigit(*(input+i)))
return 1;
else
return 0;
}
}