need a float type array of 100000 elements!!!
|
Light Poster
|
|
| 4Sep2009,14:04 | #1 |
|
How can one declare a float or double type array of 100000 elements (say)??
|
|
Mentor
|
![]() |
| 4Sep2009,15:35 | #2 |
|
If your stack is big enough:
Code:
double x[100000]; Code:
double *x=new double[100000]; //... delete[] x;
Ironmaniac
likes this
|
|
Light Poster
|
|
| 4Sep2009,17:59 | #3 |
|
~ Б0ЯИ Τ0 С0δЭ ~
|
![]() |
| 4Sep2009,18:20 | #4 |
|
If you plan to use Dynamic Memory Allocation,
(*) in C : Code: C
(*) in C++ : Code: C++
But, if you have an ANSI/ISO C++ specific compiler, you can declare such an array, without using Dynamic Memory Allocation : Code: C++
Ironmaniac, mayjune
likes this
|
|
Light Poster
|
|
| 6Sep2009,20:23 | #5 |
|
Quote:
Originally Posted by SaswatPadhi I want to use this way of doing things, Saswath....now how do I couple it with my code? The code being..... Code:
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int j=101,y=j-1,z,p;
int k,m,l,i,g,n,q,a;
int r,t;
float s,sd1,avg;
float mavg[1000],sds[1000],sds1[1000],sd[1000],A[]={126332363.4610 ,
126332295.1810 ,
126332226.8900 ,
126332158.5990 ,
126332090.3270 ,
126332022.0410 ,
126331953.7590 ,
126331885.4740 ,
126331817.1800 ,
126331748.8930 ,
126331680.6070 ,
126331612.3320 ,
126331544.0540 ,
126331475.7560 ,
126331407.4670 ,
126331339.1870 ,
126331270.9070 ,
126331202.6230 ,
126331134.3280 ,
126331066.0420 ,
126330997.7580 ,
126330929.4790 ,
126330861.1910 ,
126330792.9020 ,126330724.6240 ,
126330656.3540 ,
126330588.0730 ,
126330519.7710 ,
126330451.4860 ,
126330383.2070 ,126330314.9290 ,
126330246.6370 ,
126330178.3430 ,
126330110.0730 ,
126330041.7950 ,
126329973.5100 ,
126329905.2190 ,
126329836.9300 ,
126329768.6510 ,
126329700.3780 ,
126329632.0950 ,
126329563.8050 ,
126329495.5270 ,
126329427.2490 ,
126329358.9680 ,
126329290.6790 ,
126329222.3980 ,
126329154.1150 ,
126329085.8320 ,
126329017.5450 ,
126328949.2550 ,
126328880.9730 ,
126328812.6820 ,
126328744.3870 ,
126328676.1090 ,
126328607.8390 ,
126328539.5530 ,
126328471.2570 ,
126328402.9720 ,
126328334.6880 ,126328266.4060 ,
126328198.1180 ,
126328129.8240 ,
126328061.5460 ,
126327993.2820 ,
126327924.9980 ,
126327856.7020 ,
126327788.4220 ,
126327720.1300 ,
126327651.8550 ,
126327583.5620 ,
126327515.2700 ,
126327446.9770 ,
126327378.7020 ,
126327310.4260 ,
126327242.1450 ,
126327173.8530 ,
126327105.5730 ,
126327037.2810 ,
126326968.9940 ,
126326900.7160 ,
126326832.4360 ,
126326764.1450 ,
126326695.8530 ,
126326627.5690 ,
126326559.2960 ,
126326491.0040 ,
126326422.7150 ,
126326354.4370 ,
126326286.1590 ,126326217.8590 ,
126326149.5700 ,
126326081.2920 ,
126326013.0010 ,
126325944.7200 ,
126325876.4330 ,
126325808.1460 ,
126325739.8540 ,
126325671.5710 ,
126325603.2760,126325534.9840 },dev[100],dev1[100],ma2[100];
printf("Enter number of the starting sample: ");
scanf("%d",&r);
printf("Enter number of the ending sample: ");
scanf("%d",&t);
for(a=0;a<t-r;a++,r++)
{
sd[a]=A[r];
}
printf("Enter number of items to calculate the moving avg on the successive diff array:");
scanf("%u",&z);
printf("Enter number of items to calculate the moving avg on the deviation array:");
scanf("%u",&p);
printf("\n");
for(l=k=0;k<y,l<y;l++,k++)
{
sd1=sd[k+1]-sd[k];
sds[k]=sds1[l]=sd1;
// printf("\n") ;
// printf("\n sdiff%d is %f",k,sds[k]);
}
//printf("\n");
for(m=0;m<(y-(z-1));m++)
{
s=0;
for(i=0;i<z;i++)
{
//printf("\nsds[%d]=%f ",i+m,sds1[i+m]);
s=s+sds1[i+m];
//printf("\n%f",s);
}
avg=s/z;
//printf("\navg for m=%d is %f",m,avg);
mavg[m]=avg;
printf("mavg[%d]is%f\n",m,mavg[m]);
// printf("\n");
}
printf("\n");
for(g=0,l=(((z+1)/2)-1);g<(y-z),l<(y+1-((z+1)/2));g++,l++)
{
dev[g]=dev1[g]= sds1[l]-mavg[g];
printf("dev[%d]=%f\n",g,dev[g]);
}
for(q=0;q<(g-p+1);q++)
{
s=0;
for(n=0;n<p;n++)
{
s=s+dev[n+q];
// printf("\n%f",s);
}
avg=s/p; //printf("\navg for m=%d is %f",m,avg);
ma2[q]=avg;
printf("\n");
printf("ma2[%d]is%f",q,ma2[q]);
// printf("\n");
}
getch();
}
Thanks!! |
|
Light Poster
|
|
| 6Sep2009,20:28 | #6 |
|
The array of interest is mavg[].....I need this to be very large......
Code:
float mavg[1000]
,sds[1000],sds1[1000],sd[1000],A[]={126332363.4610 ,
126332295.1810 ,
126332226.8900 ,
126332158.5990 ,
126332090.3270 ,
126332022.0410 ,
126331953.7590 ,
126331885.4740 ,
126331817.1800 ,
126331748.8930 ,
126331680.6070 ,
126331612.3320 ,
126331544.0540 ,
126331475.7560 ,
126331407.4670 ,
126331339.1870 ,
126331270.9070 ,
126331202.6230 ,
126331134.3280 ,
126331066.0420 ,
126330997.7580 ,
126330929.4790 ,
126330861.1910 ,
126330792.9020 ,126330724.6240 ,
126330656.3540 ,
126330588.0730 ,
126330519.7710 ,
126330451.4860 ,
126330383.2070 ,126330314.9290 ,
126330246.6370 ,
126330178.3430 ,
126330110.0730 ,
126330041.7950 ,
126329973.5100 ,
126329905.2190 ,
126329836.9300 ,
126329768.6510 ,
126329700.3780 ,
126329632.0950 ,
126329563.8050 ,
126329495.5270 ,
126329427.2490 ,
126329358.9680 ,
126329290.6790 ,
126329222.3980 ,
126329154.1150 ,
126329085.8320 ,
126329017.5450 ,
126328949.2550 ,
126328880.9730 ,
126328812.6820 ,
126328744.3870 ,
126328676.1090 ,
126328607.8390 ,
126328539.5530 ,
126328471.2570 ,
126328402.9720 ,
126328334.6880 ,126328266.4060 ,
126328198.1180 ,
126328129.8240 ,
126328061.5460 ,
126327993.2820 ,
126327924.9980 ,
126327856.7020 ,
126327788.4220 ,
126327720.1300 ,
126327651.8550 ,
126327583.5620 ,
126327515.2700 ,
126327446.9770 ,
126327378.7020 ,
126327310.4260 ,
126327242.1450 ,
126327173.8530 ,
126327105.5730 ,
126327037.2810 ,
126326968.9940 ,
126326900.7160 ,
126326832.4360 ,
126326764.1450 ,
126326695.8530 ,
126326627.5690 ,
126326559.2960 ,
126326491.0040 ,
126326422.7150 ,
126326354.4370 ,
126326286.1590 ,126326217.8590 ,
126326149.5700 ,
126326081.2920 ,
126326013.0010 ,
126325944.7200 ,
126325876.4330 ,
126325808.1460 ,
126325739.8540 ,
126325671.5710 ,
126325603.2760,126325534.9840 }
|
|
Mentor
|
![]() |
| 7Sep2009,00:24 | #7 |
|
Just use the code Saswat gave you, so instead of
Code:
float mavg[1000], sds[1000] /* etc */ ; Code:
float *mavg, sds[1000] /* etc */ ; mavg=(float *)malloc(100000 * sizeof(float) ); // the rest of your code free(mavg); // don't forget this!
Ironmaniac, mayjune
likes this
|
|
Light Poster
|
|
| 8Sep2009,15:19 | #8 |
|
Ok..thanks..I am starting to get a hold of things here......once I allocate the memory...using DMA...How do I store values into the memory locations...
e.g. I free memory using the following code......how do I store values into the locations pointed by pointer A. Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
{
double *A;
A=(double *)malloc(100000000 * sizeof(double) );
if(A==NULL)
{
printf("unsuccessful");
// exit(0);
}
else
{
printf("you are in luck kid!!");
}
free(A);}
getch();
}
|
|
Mentor
|
![]() |
| 8Sep2009,15:25 | #9 |
|
Same way you do it with normal arrays, e.g. A[5]=27;
I would strongly advise you start reading a C book; it will tell you all this. |
|
~ Б0ЯИ Τ0 С0δЭ ~
|
![]() |
| 8Sep2009,19:19 | #10 |
|
Quote:
Originally Posted by Ironmaniac ![]() If you don't have enough Virtual Memory (Page File Size), your system will crash ! See what happens in my task manager (running Windows XP) :: Initially :: Finally :: As expected
|



