Помогите найти ошибку в программе С++

  • Автор темы bini1988
  • Дата начала
B

bini1988

Гость
#1
Помогите найти ошибку, пытаюсь выделить память для двумерного массива, заполнить его случайными числами и вывести на печать:

C++:
// Task1.2.18.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>


using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

srand((unsigned) time(NULL));

int my = (int) ((float) rand() / RAND_MAX * 10 ); //Строк
int mx = (int) ((float) rand() / RAND_MAX * 10 ); //Столбцов

cout << "Array [" << my << "][" << mx << "]:" << endl;

float sum = 0;

float * mas;

if (mas = new float[my * mx])
{
cout << "Good!" << endl;
}



for(int i = 0; i < my; i++)
for(int j = 0; j < mx; j++)
{
mas[i * my + j] = (float) ((float) rand() / RAND_MAX + 0);
sum = sum + mas[i * my + j];
}

/*С это момента программа вылетает*/

for(int i = 0; i < my; i++)
{
for(int j = 0; j < mx; j++)
cout << mas[i * my + j] << " ";

cout << endl;
}


cout << "sum: " << sum << endl;


delete [] mas;

getchar();
getchar();

return 0;
}
В результате программа выдает ошибку:

Windows has triggered a breakpoint in Task1.2.18.exe.

This may be due to a corruption of the heap, which indicates a bug in Task1.2.18.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while Task1.2.18.exe has focus.

The output window may have more diagnostic information.
В чем ошибка?
 
B

bini1988

Гость
#2
мда, мертвый форум, ошибку я уже нашел так что всем спасибо кто хоть краем глаза глянул =)

C++:
for(int i = 0; i < my; i++)
{
for(int j = 0; j < mx; j++)
cout << mas[i * mx + j] << " ";

cout << endl;
}