• Advertisement
Sign in to follow this  

CRT detected that the application wrote to memory after end of heap buffer

This topic is 2657 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I just wrote a simple program to test my new knowledge of allocating memory and of course deleting the allocated memory. However, when I run my program I get this strange error. Here's my code:


int main(){

int a = 0;

std::cout << "Enter array size: ";
std::cin >> a;

int* myArray = new int[a];

for (int i=0;i<=a;i++){
myArray[i] = i;
std::cout << myArray[i];
}

delete[] myArray;
myArray = 0;

std::cin.get();

}


Share this post


Link to post
Share on other sites
Advertisement
Quote:

for (int i=0;i<=a;i++)

Your array only takes up the range [0,a). You need to write your loop as
for( int i=0; i<a; i++ )

You were writing one past the end of the array.

Share this post


Link to post
Share on other sites
Quote:
Original post by KulSeran
Quote:

for (int i=0;i<=a;i++)

Your array only takes up the range [0,a). You need to write your loop as
for( int i=0; i<a; i++ )

You were writing one past the end of the array.


Hey, thanks very much! I guess it was something simple after all.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement