是int *p;
p=(int*)malloc(n*2)
n为自己输入
我想讨论的是2维动态数组的一些定义方法
大家自己常用的方法不如跟大家一起分享一下~
学习需要讨论!(个人认为)
话虽如此说,模拟一个2维的“按行存储”的动态数组还是有办法的:
[题目]申请一个M=4行N=5列的二维动态数组A,以便存放“增广矩阵”。
[思路]申请拥有(M*N)个元素的连续内存,将其首地址写入“行指针”A。
[代码]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define M 4
#define N (M+1)
int main(void)
{
int i,j;
double (*A)[N],sum;
A = malloc(M*N*sizeof(double));
//filling the 2 dimensional array A:
for(i=0;i<M;i++)
{
sum=0;
for(j=0;j<M;j++)
sum+=(A[i][j]=1.0/(i+j+1));
A[i][j]=sum;
}
//check the values of the filled matrix A:
for(i=0;i<M;i++,printf("\n"))
for(j=0;j<N;j++)printf("%lf ",A[i][j]);
getch();
return 0;
}