Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Memory Overrun! in MFC

Memory Overrun! in MFC

Scheduled Pinned Locked Moved C / C++ / MFC
c++performancehelpquestion
17 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Mark Salsbery

    mostafa_pasha wrote:

    there is memory overrun error & i do not know how can i solve that!

    Don't overrun the end of your allocated memory. Mark

    T Offline
    T Offline
    ThatsAlok
    wrote on last edited by
    #7

    Mark Salsbery wrote:

    Don't overrun the end of your allocated memory.

    HI Mark,  could you explain it further do you mean something like this    int*  pnSize=new int[10];  pnSize[10]=10;// which is not available   delete [] pnSize;

    "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

    cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief and You

    M 2 Replies Last reply
    0
    • T ThatsAlok

      Mark Salsbery wrote:

      Don't overrun the end of your allocated memory.

      HI Mark,  could you explain it further do you mean something like this    int*  pnSize=new int[10];  pnSize[10]=10;// which is not available   delete [] pnSize;

      "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

      cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief and You

      M Offline
      M Offline
      Mark Salsbery
      wrote on last edited by
      #8

      That is extremely well done, yes :) cheers, Mark

      1 Reply Last reply
      0
      • T ThatsAlok

        Mark Salsbery wrote:

        Don't overrun the end of your allocated memory.

        HI Mark,  could you explain it further do you mean something like this    int*  pnSize=new int[10];  pnSize[10]=10;// which is not available   delete [] pnSize;

        "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

        cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief and You

        M Offline
        M Offline
        Mark Salsbery
        wrote on last edited by
        #9

        Actually I was wrong about your code being "well done"... The original poster said "i allocate very large data". Therefore, your code sample should be: int* pnSize=new int[100]; pnSize[100]=10;// which is not available delete [] pnSize; :doh: Have a great day, Mark

        M T 2 Replies Last reply
        0
        • M Mark Salsbery

          Actually I was wrong about your code being "well done"... The original poster said "i allocate very large data". Therefore, your code sample should be: int* pnSize=new int[100]; pnSize[100]=10;// which is not available delete [] pnSize; :doh: Have a great day, Mark

          M Offline
          M Offline
          mostafa_pasha
          wrote on last edited by
          #10

          excuse me for delay to response, //OVERRUN is for Pitch array .... char *BeginFile = NULL; BeginFile = new char[44]; try { File.Read(BeginFile,44); } catch(CFileException *pe) { pe->ReportError(); } DWORD dwLength = (File.GetLength()-44); char *inChar ; inChar = new char[800000]; try { File.Read(inChar,dwLength); } catch(CFileException *pe) { pe->ReportError(); } File.Close(); int tmp; unsigned char c1,c2; double *in ; in = new double[400000]; int smp=dwLength/2; const int fs=22050; const int fc=7500; int kc = floor( (double)(fc * N / fs) )+1; int len=ceil((double)smp/N*2)+1; double *CBn ; CBn = new double[kc*len]; int sizeCB; sizeCB = Netmfile.Feature( in , kc ,smp , CBn ); int *Pitch = NULL; Pitch = new int[3000]; // :wtf:if use 2000 have OVERRUN PROBLEM IF use 3000 DO NOT HAVE OVERRUN PROBLEM:omg: // PitchExtract shown below int LenPitch = Netmfile.PitchExtract( in ,smp ,Pitch ); delete in; delete BeginFile; delete in; delete BeginFile; char weigthpath[]="text\\"; //path of MAT to TXT file double *CB1t ; CB1t = new double [kc*len]; Netmfile.net( CBn , CB1t , kc , weigthpath , sizeCB ); Netmfile.z = sizeCB * N - (sizeCB-1) * (N/2); smp2 = new double [Netmfile.z]; for (i=0 ; iN/2) { for ( j=p ; j>=i+1 ; j--) pichi [ j ] = pichi [ j - 1 ] ; pichi [ i ] = N/2; pichi [ i + 1 ] = m - N/2; m=0; p++; } i++; } return (p); }

          M D 2 Replies Last reply
          0
          • M mostafa_pasha

            excuse me for delay to response, //OVERRUN is for Pitch array .... char *BeginFile = NULL; BeginFile = new char[44]; try { File.Read(BeginFile,44); } catch(CFileException *pe) { pe->ReportError(); } DWORD dwLength = (File.GetLength()-44); char *inChar ; inChar = new char[800000]; try { File.Read(inChar,dwLength); } catch(CFileException *pe) { pe->ReportError(); } File.Close(); int tmp; unsigned char c1,c2; double *in ; in = new double[400000]; int smp=dwLength/2; const int fs=22050; const int fc=7500; int kc = floor( (double)(fc * N / fs) )+1; int len=ceil((double)smp/N*2)+1; double *CBn ; CBn = new double[kc*len]; int sizeCB; sizeCB = Netmfile.Feature( in , kc ,smp , CBn ); int *Pitch = NULL; Pitch = new int[3000]; // :wtf:if use 2000 have OVERRUN PROBLEM IF use 3000 DO NOT HAVE OVERRUN PROBLEM:omg: // PitchExtract shown below int LenPitch = Netmfile.PitchExtract( in ,smp ,Pitch ); delete in; delete BeginFile; delete in; delete BeginFile; char weigthpath[]="text\\"; //path of MAT to TXT file double *CB1t ; CB1t = new double [kc*len]; Netmfile.net( CBn , CB1t , kc , weigthpath , sizeCB ); Netmfile.z = sizeCB * N - (sizeCB-1) * (N/2); smp2 = new double [Netmfile.z]; for (i=0 ; iN/2) { for ( j=p ; j>=i+1 ; j--) pichi [ j ] = pichi [ j - 1 ] ; pichi [ i ] = N/2; pichi [ i + 1 ] = m - N/2; m=0; p++; } i++; } return (p); }

            M Offline
            M Offline
            Mark Salsbery
            wrote on last edited by
            #11

            First of all...what's going on in these sections....you left something out for (i=0 ; i smp2[i]=0; delete CBn; delete CB1t; delete Pitch; // have problem.......................use devpartner say OVERRUN } ... while (i { m=m+pichi[i]; if ... Mark

            M 1 Reply Last reply
            0
            • M Mark Salsbery

              First of all...what's going on in these sections....you left something out for (i=0 ; i smp2[i]=0; delete CBn; delete CB1t; delete Pitch; // have problem.......................use devpartner say OVERRUN } ... while (i { m=m+pichi[i]; if ... Mark

              M Offline
              M Offline
              mostafa_pasha
              wrote on last edited by
              #12

              excuse me for this fault, i do not know when i ignore HTML tags , the messeage is correct:confused: Netmfile.z = sizeCB * N - (sizeCB-1) * (N/2); //double *smp2; smp2 = new double [Netmfile.z]; for (i=0 ; iN/2) { for ( j=p ; j>=i+1 ; j--) pichi [ j ] = pichi [ j - 1 ] ; pichi [ i ] = N/2; pichi [ i + 1 ] = m - N/2; m=0; p++; //beacause of increase of Pitch length in each atage } i++; } return (p);

              1 Reply Last reply
              0
              • M Mark Salsbery

                Actually I was wrong about your code being "well done"... The original poster said "i allocate very large data". Therefore, your code sample should be: int* pnSize=new int[100]; pnSize[100]=10;// which is not available delete [] pnSize; :doh: Have a great day, Mark

                T Offline
                T Offline
                ThatsAlok
                wrote on last edited by
                #13

                Mark Salsbery wrote:

                The original poster said "i allocate very large data". Therefore, your code sample should be: int* pnSize=new int[100];

                HE HE HE! :-D

                "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief and You

                1 Reply Last reply
                0
                • M mostafa_pasha

                  excuse me for delay to response, //OVERRUN is for Pitch array .... char *BeginFile = NULL; BeginFile = new char[44]; try { File.Read(BeginFile,44); } catch(CFileException *pe) { pe->ReportError(); } DWORD dwLength = (File.GetLength()-44); char *inChar ; inChar = new char[800000]; try { File.Read(inChar,dwLength); } catch(CFileException *pe) { pe->ReportError(); } File.Close(); int tmp; unsigned char c1,c2; double *in ; in = new double[400000]; int smp=dwLength/2; const int fs=22050; const int fc=7500; int kc = floor( (double)(fc * N / fs) )+1; int len=ceil((double)smp/N*2)+1; double *CBn ; CBn = new double[kc*len]; int sizeCB; sizeCB = Netmfile.Feature( in , kc ,smp , CBn ); int *Pitch = NULL; Pitch = new int[3000]; // :wtf:if use 2000 have OVERRUN PROBLEM IF use 3000 DO NOT HAVE OVERRUN PROBLEM:omg: // PitchExtract shown below int LenPitch = Netmfile.PitchExtract( in ,smp ,Pitch ); delete in; delete BeginFile; delete in; delete BeginFile; char weigthpath[]="text\\"; //path of MAT to TXT file double *CB1t ; CB1t = new double [kc*len]; Netmfile.net( CBn , CB1t , kc , weigthpath , sizeCB ); Netmfile.z = sizeCB * N - (sizeCB-1) * (N/2); smp2 = new double [Netmfile.z]; for (i=0 ; iN/2) { for ( j=p ; j>=i+1 ; j--) pichi [ j ] = pichi [ j - 1 ] ; pichi [ i ] = N/2; pichi [ i + 1 ] = m - N/2; m=0; p++; } i++; } return (p); }

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #14

                  mostafa_pasha wrote:

                  delete Pitch; // have problem.......................use devpartner say OVERRUN

                  Use delete [] Pitch instead. All new[] must have a matching delete[].


                  "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                  "Judge not by the eye but by the heart." - Native American Proverb

                  M 1 Reply Last reply
                  0
                  • D David Crow

                    mostafa_pasha wrote:

                    delete Pitch; // have problem.......................use devpartner say OVERRUN

                    Use delete [] Pitch instead. All new[] must have a matching delete[].


                    "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                    "Judge not by the eye but by the heart." - Native American Proverb

                    M Offline
                    M Offline
                    mostafa_pasha
                    wrote on last edited by
                    #15

                    Hi, but there is not diffrence , i think before i must use delete [] when i create two dimensional array in heap such as this: vf_Weigth = new float* [nlayer2+1]; for ( i =0 ; i< (nlayer2+1) ; i++) vf_Weigth[i] = new float[nlayer1]; delete [] vf_Weigth; // but now i find i delete in these way: for (int i = 0; i < nlayer2+1 ; i++) delete vf_Weight[i]; is that code is correct? at last i say again delete [] Pitch is not work & my code have that serios error. Best Regards. M.J.M.

                    D 1 Reply Last reply
                    0
                    • M mostafa_pasha

                      Hi, but there is not diffrence , i think before i must use delete [] when i create two dimensional array in heap such as this: vf_Weigth = new float* [nlayer2+1]; for ( i =0 ; i< (nlayer2+1) ; i++) vf_Weigth[i] = new float[nlayer1]; delete [] vf_Weigth; // but now i find i delete in these way: for (int i = 0; i < nlayer2+1 ; i++) delete vf_Weight[i]; is that code is correct? at last i say again delete [] Pitch is not work & my code have that serios error. Best Regards. M.J.M.

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #16

                      You need to gain a further understanding of how new/delete works, specifically with the [] notation. See: http://www.informit.com/guides/content.asp?g=cplusplus&seqNum=36&rl=1[^] http://www.cplusplus.com/doc/tutorial/dynamic.html[^] http://www.glenmccl.com/bett_003.htm[^]


                      "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                      "Judge not by the eye but by the heart." - Native American Proverb

                      1 Reply Last reply
                      0
                      • Z Zac Howland

                        Apparently it fell under the stack of memos reminding me to fill out my damn TPS reports.

                        If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week Zac

                        C Offline
                        C Offline
                        charlieg
                        wrote on last edited by
                        #17

                        lol - I LOVE that movie! .... reaching for my red stapler

                        Charlie Gilley Will program for food... Whoever said children were cheaper by the dozen... lied. My son's PDA is an M249 SAW. My other son commutes in an M1A2 Abrams

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups