B
bini1988
Помогите найти ошибку, пытаюсь выделить память для двумерного массива, заполнить его случайными числами и вывести на печать:
В результате программа выдает ошибку:
В чем ошибка?
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.
В чем ошибка?