ash*_*agi 4 c malloc multidimensional-array
我正在使用不等的第二维尺寸的多维数组.让我们假设我需要以下数据结构:
[&PTR0] - > [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
[&PTR1] - > [0] [1] [2]
[&PTR2] - > [0] [1] [2] [3] [4]
int main()
{
int *a[3];
int *b;
int i;
a[0] = (int *)malloc(10 * sizeof(int));
a[1] = (int *)malloc(2 * sizeof(int));
a[2] = (int *)malloc(4 * sizeof(int));
for(i=0; i<10; i++) a[0][i]=i;
for(i=0; i<2; i++) a[1][i]=i;
for(i=0; i<4; i++) a[2][i]=i;
}
Run Code Online (Sandbox Code Playgroud)
我做了一些测试,似乎我可以在[1] [3]中存储一个值.这是否意味着我的数组中的行大小相等10?
不,地址a [1] [3]不"正式存在".它是一个未在程序中定义的内存,访问它会导致未定义的行为.
它可能导致以下错误: