Я хочу создать динамический массив 2d по функции, но кажется, что что-то очень не так. Это бросает мне ошибку, когда я хочу что-то в ней положить.Динамический массив 2d неправильно создается
Ошибка
Unhandled exception at 0x003a19c8 in p01.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
CreateDynamicArray()
short int** CreateDynamicArray(int row, int col)
{
// Creating variable
short int** dynamicArray;
// Creating rows
dynamicArray = (short int**)malloc(row * sizeof(short int*));
// Going trough every row and creating columns for them
for (int i = 0; i < row; i++)
{
dynamicArray[row] = (short int*)malloc(col * sizeof(short int));
}
// Returning created array
return dynamicArray;
}
Основной()
// Creating it
dynamicArray = CreateDynamicArray(row, col);
// Filling up with random numbers
for (i = 0; i < row; i++)
{
randomNumber = rand() % 20;
dynamicArray[i][n] = randomNumber; // Here it throws me exception
for (n = 0; n < col; n++)
{
randomNumber = rand() % 20;
dynamicArray[i][n] = randomNumber;
}
}
P.S. Да, это несколько из домашних заданий, но я по-прежнему нужна помощь в Om этот вопрос :)
Ха-ха, спасибо. Это было довольно ... глупо от меня :) – sed
@Qmal: Ваш прием :) –
ваш листок malloc избыточен, это C++-материал – user411313