请教下,如果n也变手动修改 “int MM[n][2]={0,0};”语句应该怎么改呢?

有这样一段定义:
#include "stdafx.h"
#include <iostream.h>
#define n 8
#define m 6
void main()
{
int i,j,count=0,k=0,h;
int MM[n][2]={0,0}; //用数组表示有向图
int t[m]={0}; //输出拓扑序列的数组
int s[m]={0}; //有向图个顶点的入度
int flag[m]={0}; //标记已删去的顶点
……

我想把m的数值变成可以人为输入的变量,不知应该怎样替换?
上次有大侠帮忙让我用
cin>>M;
int* t = (int*)malloc(M * sizeof(int));
这个语句,
我不太会用,一见指针就晕了。。
我是否应该把这段语句改为:
……
#define n 8
void main()
{
cin>>m;
……
int * t = 0;
t = (int *)malloc(m * sizeof(int));
memset(t, 0, m * sizeof(int));
……
如果n也变手动修改
“int MM[n][2]={0,0};”语句应该怎么改呢?
n与m做为数组的大小,不可以是int出来的变量哦!

慕莱坞森
浏览 105回答 2
2回答

侃侃尔雅

如果不习惯看到太多指针,用C++的语法或许好些,类似下面这种:int *p = new int[m];int *p = new int[n][2];如果都用动态内存分配,就不要希望用数组的初始化方法了,直接用memset初始化就行了。

蓝山帝景

#include "stdafx.h"#include <iostream.h>void main(){int n,m;cin>>n;cin>>m;//这里可以加提示int i,j,count=0,k=0,h;int MM[n][2]={0,0}; //用数组表示有向图int t[m]={0}; //输出拓扑序列的数组int s[m]={0}; //有向图个顶点的入度int flag[m]={0}; //标记已删去的顶点
打开App,查看更多内容
随时随地看视频慕课网APP