Я пытаюсь выделить 2-мерный массив во время выполнения, используя malloc
, используя концепцию указателей на указатели. Этот код не показывает ошибки компиляции, но дает ошибку времени выполнения.Создание двумерного массива во время выполнения с использованием malloc
#include<stdio.h>
#include<stdlib.h>
int ** alpha(void)
{
int **x;
x=(int **)malloc(3*sizeof(int *));
for(int i=0;i<3;i++)
{
x[0]=(int *)malloc(3*sizeof(int));
}
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
x[i][j]=i+j;
}
}
return x;
}
int main()
{
int **p;
p=alpha();
printf("%d",p[1][2]);
return 0;
}
Есть разница в C между двумерным массивом и массивом массивов, кстати. Это последнее. – Leushenko
И ошибка времени выполнения ...? – AndersNS