• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы bini1988
  • Дата начала
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.

В чем ошибка?
 
B

bini1988

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

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

cout << endl;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!