精油的使用步骤:c++中#define F(x)定义语句可否替换为int格式语句?

来源:百度文库 编辑:高校问答 时间:2024/05/07 07:32:01
有这么一段定义:
#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的数值变成可以人为输入的变量,不知应该怎样替换?首先把"#define m 6"改成“int m=6;”VC++就说有错误了!

不可以,因为m将作为数组的容量,必须是一个常数或者宏替换
如果想要动态的,要这样:
cin>>M;
int* t = (int*)malloc(M * sizeof(int));
也就是动态声明大小
如果你不会用new或者malloc函数,用vector循环M次每次新增一个也能实现;如果vector也不会,。。。。。还是用固定的吧

静态数组不可以用变量作长度
动态就可以:
int *a = new int[m]
就可以了