为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕莱坞森 2022-05-19 19:15:26
有这样一段定义:#include "stdafx.h"#include <iostream.h>#define n 8#define m 6void 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 8void 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出来的变量哦!
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

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

查看完整回答
反对 回复 2022-05-23
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

#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}; //标记已删去的顶点



查看完整回答
反对 回复 2022-05-23
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信