范文无忧网计划总结报告汇报

C语言申请动态2维数组

02月28日 编辑 fanwen51.com

[用c语言定义申请一个动态矩阵怎样给动态矩阵怎样赋初值]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdlib.h> #define ROW 10 #define COL 10 int**matrix; //动态申请空间 matrix = (int**) malloc(sizeof(int*)...+阅读

C语言申请动态2维数组

两种方法: 1.转化为一维数组申请 2.先申请全部行首指针,再按行逐行申请 1. a=(int *)malloc(sizeof(int),(unsigned)m*n); 使用的时候就和一般的二维数组一样。 举个例子给你: #include "stdlib.h" #include "stdio.h" #includeint main() { int i,j; int (*p)[10]; //动态生成二维数组格式就是相当与p[10][10],如果想改,自己该里面 的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int)); p=(int (*)[10])malloc(10*10*sizeof(int)); for(i=0;i

C申请动态二维数组

你好! 首先你的代码有两个问题:

1、动态创建一维数组时,是p = new int[m]; 因此动态创建二维数组时,应该是p = new int *[m]; 而不是*p = new int[m]; 你的程序运行到这一步出错。

2、多次定义row,导致编译出错。 另外,如果要释放指针,需要先把数组p中的指针依次delete,最后再释放p。 最终代码如下: int main() { int **p; int m,n; cout <<; "请输入行数和列数:" << endl; cin >> m >> n; p = new int *[m]; for(int i = 0;i <= m-1;i++) { p[i]=new int[n]; } for(int row = 0;row <= m-1;row++) { for(int col = 0; col <= n-1;col++) { p[row][col] = 0; } } for(row = 0;row <= m-1;row++) { for(int col = 0; col <= n-1;col++) { cout << p[row][col] << "\t"; } cout << "\n"; } for(row = 0;row <= m-1;row++) { delete [] p[row]; } delete p; system("pause"); return 0; }

c中怎样创建动态二维数组

如果你能大概预测到行数的话,可以确定一个近似值的 int MAX=1000; int**a; a=new int*[MAX]; for(int i=0;i

C语言动态构造二维数组

你的空间申请有问题,这是帮你改好后的,你可以运行看看。

不着调是否帮上你了,如果OK还望采纳,和而后~~

#include

#include

void main()

{

int n,i=0,j=0;

int **p;

printf("?????????:");

scanf("%d",&n);

//p=(int**)malloc(sizeof(int)*n*n);

p=(int**)malloc(sizeof(int*)*n);

for(i=0;i

{

p[i]=(int*)malloc(sizeof(int)*n);

for(j=0;j

{

scanf("%d",&p[i][j]);

//printf("%d",p[i][j]);

}

}

for(i=0;i

{

for(j=0;j

{

printf("%d ",p[i][j]);

}

printf("\n");

}

system("pause");

}

延伸阅读:

C语言如何动态创建二维数组这样的方法可行,不过要是题目要求输入m和n,然后再定义二维数组a[m][n],那就行不通了。 你可以这样做:(以int型为例) int **a; int m,n,i; scanf("%d%d",&m,&n); a=(int**)malloc(m*s...

C里怎样申请动态的二维数组C++使用vector方便生成: #include <iostream> #include <vector> #include <iomanip> using namespace std; int main() { int i, j, m, //行数 n; //列数 cout << "input value...

在C中如何申请二维数组动态指针据我所知,你只能申请一维的。如果想实现二维数组,只能利用映射关系来实现,即a[i*l+j],l是每一维的行的长度,i,j对应二维数组的下标。 嗯。。这里是c++,还可以这样写,我改一改到c里...

C申请动态二维数组你好! 首先你的代码有两个问题: 1、动态创建一维数组时,是p = new int[m]; 因此动态创建二维数组时,应该是p = new int *[m]; 而不是*p = new int[m]; 你的程序运行到这一步出错。...

C如何动态创建二维数组float(*cp)[9][8]; // cp=new float[8][9][8];// 第一条语句是申明数组指针,即cp指向一个float型的数组。 第二条语句是开辟了一个【8】【9】【8】的三位数组空间,将首地址赋给...

c中如何动态申请和释放二维数组用new申请空间; 再在对每个数进行初始化; //动态定义和初始化二维数组 部分代码 coutcin>>row >>col ; int **p2 ; p2 = new int*[row] ; for( i = 0 ; i p2[i] = new int[col...

C语言建立动态二维数组#include #include void main() { int i ,j; int n; int **a = (int**)malloc(sizeof(int*) * n); scanf("%d", &n); for(i = 0; i { a[i] = (int*)malloc(sizeof(int) *n); i...

c中怎么用malloc动态申请二维数组#include <stdio.h> #include <stdlib.h> void main() { int i,j; int (*p)[20]=a;//malloc(sizeof(a[10][20])); for(i=0;i<10;i++) { for(j=0;j<20;j++) { a[i][j]=i*j; /...

C语言动态构造二维数组你的空间申请有问题,这是帮你改好后的,你可以运行看看。 不着调是否帮上你了,如果OK还望采纳,和而后~~ #include <stdio.h> #include <stdlib.h> void main() { int n,i=0,j=0;...

推荐阅读
图文推荐
栏目列表