有这样一段定义:#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初始化就行了。
蓝山帝景
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}; //标记已删去的顶点
添加回答
举报
0/150
提交
取消