int main()
{

``````//srand(time_t(NULL));
time_t t;
srand((unsigned) time(&t));
char filename[100] = "hep.txt";
bool directed = false;
int R = 100;

Graph::BuildFromFile2WC(filename);
.....
}

//下面是调用的原函数
void Graph::BuildFromFile2WC(char *file){

if (built)
return;
built = true;

FILE* in = fopen(file, "r");
fscanf(in,"%ld %ld", &n, &m);
``````

....}

5个回答

n和m在哪里定义的，是不是常量？

Graph::BuildFromFile2WC(filename);

class Graph
{
private:
static int n;
static int m;
static vector degree;
static vector indegree;
static vector outdegree;
static void qsort_edges(int h, int t);

public:
....
static void BuildFromFile2WC(char *file);// undirected graph + wic
...
}Graph是一个类，他的定义如上，n,m的定义在里面。BuildFromFile2WC是成员函数，那应该怎么改啊

{
private:
static int n;
static int m;
static vector degree;
static vector indegree;
static vector outdegree;
static void qsort_edges(int h, int t);

public:
static void QuickSort(int p,int r);
static int partion(int p,int r);
static void insertsort_edges(int right);
static void merge_edges(int start, int middle, int left);
static void mergesort_edges(int start, int end);
static void merge(int start, int middle, int end);
static bool built;
static vector index;
static vector correspond;
static void Build();
static int GetN();
static int GetM();
static vector edges;
static int GetDegree(int node);
static int GetOutDegree(int node);
static int GetInDegree(int node);
static int GetNeighbor(int node);
static Edge GetEdge(int node, int idx);
static void BuildIC();
static void BuildWC();
static void Build2GC();
static void Build2WC();
static void Build2DWC();
static void BuildFromFile2DWC(char *file); //directed graph + wic
static void BuildFromFile2OIC(char *file);
static void BuildFromFile2DUC(char *file, double p);//directed graph + uic
static void BuildFromFile2WC(char *file);// undirected graph + wic
static void BuildFromFile2UC(char *file, double p);//undirected graph + uic
static void Build2IC();
static void sortEdges();
static void Stats();
};//这个是类定义，完整的
bool Graph::built = false;
int Graph::n = 0;
int Graph::m = 0;
vector Graph::index;
vector Graph::degree(MAX_NODE,0);
vector Graph::indegree(MAX_NODE,0);
vector Graph::outdegree(MAX_NODE,0);
vector Graph::edges;
vector Graph::correspond(MAX_EDGE,0);//变量的初始化。函数就不一一列了。
void Graph::BuildFromFile2WC(char *file){

``````if (built)
return;
built = true;

FILE* in = fopen(file, "r");
fscanf(in,"%ld %ld", &n, &m);

degree.resize(n);
indegree.resize(n);
outdegree.resize(n);
edges.resize(2*m);
correspond.resize(2*m);

for (int i=0; i<m; i++)
{
//scanf("%ld %ld", &edges[i].u, &edges[i].v);
fscanf(in,"%ld %ld", &edges[i].u, &edges[i].v);
//inverse
//int temp = 0;
//temp = edges[i].u;
//edges[i].u = edges[i].v;
//edges[i].v = temp;

//edges[i].u;
//edges[i].v;
edges[i].w1=0;
edges[i].w2=0;
edges[i+m].u = edges[i].v;
edges[i+m].v = edges[i].u;
edges[i+m].w1=0;
edges[i+m].w2=0;
edges[i].c   = 1;
edges[i+m].c = 1;
degree[edges[i].u]++;
degree[edges[i].v]++;
indegree[edges[i].v]++;
indegree[edges[i].u]++;
outdegree[edges[i].u]++;
outdegree[edges[i].v]++;
correspond[i] = i+m;
correspond[i+m] = i;
}

qsort_edges(0, 2*m-1);
int newlocation[MAX_EDGE] = {0};
int m1 = 0;
for (int i=1; i<2*m; i++)
{
if ((edges[i].u != edges[m1].u) || (edges[i].v != edges[m1].v))
{
m1++;
edges[m1] = edges[i];
}
else
{
edges[m1].c++;
if (edges[i].w1<edges[m1].w1) edges[m1].w1=edges[i].w1;
edges[m1].w2=min(edges[m1].w2,edges[i].w2);
//if (edges[i].u==141 && edges[i].v==0) printf("%d %lg %lg %lg\n",i,edges[m1].w2,edges[i].w2,min(edges[m1].w2,edges[i].w2));
}
newlocation[i] = m1;
}

for(int i=0; i<2*m; i++){
correspond[newlocation[i]] = newlocation[correspond[i]];
}

if (m!=0)
m = m1+1;

index.resize(n);
for (int i=0; i<n; i++)
index[i] = 0;
for (int i=0; i<m; i++)
index[edges[i].u] = i;
for (int i=1; i<n; i++)
if (index[i] < index[i-1])
index[i] = index[i-1];

for (int i=0;i<m;i++)
{
//if (edges[i].w1==0)
edges[i].w1=-log(1-pow(1-1.0/indegree[edges[i].v], edges[i].c));
//if (edges[i].w2==0)
edges[i].w2=-log(1-pow(1-1.0/indegree[edges[i].u], edges[i].c));
}

FILE *out = fopen("directed.txt", "w");
for (int i=0; i<m; i++){
//if(indegree[edges[i].v]==0)
//continue;
fprintf(out, "%d\t%d\t%f\n", edges[i].u, edges[i].v, 1.0/indegree[edges[i].v]);
}

fclose(out);
``````

}//这个是我需要调用的那个函数，的定义。
main函数里
int main()
{

``````//srand(time_t(NULL));
time_t t;
srand((unsigned) time(&t));
char filename[100] = "hep.txt";
bool directed = false;
int R = 100;
Graph graph1;
graph1.BuildFromFile2WC(filename);//后面就省略， 到这就出错了，segmentation fault
``````

OpenSUSE 11原来安装的glibc-2.11，下载了glibc-2.14. 编译安装， 然后执行了 ln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6 就出现segmentation fault ，任何操作都无法执行，求救解决方法
Segmentation fault问题
//c语言实现输入任意长度的字符串 #include <stdio.h> #include <stdlib.h> int main (void ) { char *string = NULL ,*temp = NULL; char ch; int i; //先将字符串初始化为空 string = (char *)malloc(1); string[0] = '\0'; //len为实际长度(包括空字符) int len = 1; while ((ch = getchar())!= '\n') { //申请一个新字符串 temp = (char *)malloc(len+1); if (temp = NULL) { printf("内存不足！"); free(string); exit(0); } i=0; while (string[i] != '\0'&&i<len) { //把原字符串复制到新字符串 temp[i] = string[i]; i++; } //把新字符归位 temp[i] = ch; //把空字符归位 temp[i+1] = '\0'; //释放源字符，这一步很关键，否 //则会造成内存泄露 free(string); string = temp; len++; } int j=0; while (string[j]!='\0') { putchar(string[j]); j++; } return 0; } 运行时显示Segmentation fault怎么办？
justniffer Segmentation fault

centos 安装bin文件报错segmentation fault
centos 安装bin文件报错segmentation fault
centos下 Segmentation fault 错误！
centos 6.9 执行 yum、wget、oracle启动实例dbstart、sqlplus 等 操作都会报错：Segmentation fault； 请问是哪里出现了问题？
mac系统下gcc出现Segmentation fault: 11错误

ld terminated with signal 11 [Segmentation fault]

Mac中抓包出现Segmentation fault：11，怎么解决？

linux系统运行java相关的程序时出现segmentation fault错误

qt中delete的疑问（Signal meaning : Segmentation fault）
void MyTreeWidget::clear_tree(BasaEventWidget* &root) { if(root == NULL) return; for(int i=0;i<root->Childnum;i++) { clear_tree(root->ChildEvent[i]); } delete root; root = NULL; } 注：BasaEventWidget 是一个窗口部件类，公有继承QWidget. 有成员变量vector<BasaEventWidget*> ChildEvent 调用这个函数后 弹出信息Signal meaning : Segmentation fault 请问是什么原因

g++编译成功，运行提示Segmentation fault (core dumped)
g++编译成功，运行提示Segmentation fault (core dumped) vs可以正常运行，为什么呢 #include<iostream> #include<cmath> #include<stdio.h> #include <cstdlib> using namespace std; int *move(int a,int b) { int *p; p[0]=a+1; p[1]=b+2; return p; } int main() { int *a=move(2,3); getchar(); return 0; }

#include <stdio.h> #include <stdlib.h> #include <string.h> void reverse( ); int main( ) { char str[100]; int start, end; gets(str); scanf("%d %d", &start, &end); reverse( str, start, end ); printf("%s\n", str); return 0; } void reverse(char str[],int start,int end){ int k,len; for(len=0;len<=100;len++){ if(str[len]=='\0'){ len--;break; } } if((end-start)>(len-start))end=len; if((end - start==0)||(end - start==1)){ k=str[end] ;str[end] = str[start] ;str[start] =k; } else{ k=str[end] ;str[end] = str[start] ;str[start] =k; reverse (str,start++,end--); //调试运行到这一步时进不了递归函数，提示错误为program received signal sigsegv,segmentation fault } }

Fibonacci的c++代码出现segmentation fault

Java学习的正确打开方式

linux系列之常用运维命令整理笔录

Python十大装B语法
Python 是一种代表简单思想的语言，其语法相对简单，很容易上手。不过，如果就此小视 Python 语法的精妙和深邃，那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点，并附上详细的实例代码。如能在实战中融会贯通、灵活使用，必将使代码更为精炼、高效，同时也会极大提升代码B格，使之看上去更老练，读起来更优雅。 1. for - else 什么？不是 if 和 else 才

2019年11月中国大陆编程语言排行榜
2019年11月2日，我统计了某招聘网站，获得有效程序员招聘数据9万条。针对招聘信息，提取编程语言关键字，并统计如下： 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7

JDK12 Collectors.teeing 你真的需要了解一下

SQL-小白最佳入门sql查询一

【图解经典算法题】如何用一行代码解决约瑟夫环问题

“狗屁不通文章生成器”登顶GitHub热榜，分分钟写出万字形式主义大作

GitHub标星近1万：只需5秒音源，这个网络就能实时“克隆”你的声音

《程序人生》系列-这个程序员只用了20行代码就拿了冠军

11月8日，由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办，科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。 　　区块链技术被认为是继蒸汽机、电力、互联网之后，下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力，电力解决了人类基本的生活需求，互联网彻底改变了信息传递的方式，区块链作为构造信任的技术有重要的价值。 　　1...

【技巧总结】位运算装逼指南

【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块（文章最后附有源码） 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁，现如今各大云服务平台横空出世，市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统，而本人家里就有人在用烟草销售系统，直接在网上完成挑选、购买与提交收货点，方便又快捷。 试想，若没有烟草销售系统，本人家人想要购买烟草，还要独自前往药...
4G EPS 第四代移动通信系统