字符串形参传递异常
字符串形参传递错误
写了一个程序,结果运行时有段错误,在generate_random_ints_file这个函数调用的地方
大神看看怎么回事,就是传递字符串做文件名嘛,怎么就错了
写了一个程序,结果运行时有段错误,在generate_random_ints_file这个函数调用的地方
Program received signal SIGSEGV, Segmentation fault.
0x08048b08 in generate_random_ints_file (file_name=<error reading variable: Cannot access memory at address 0xbd9d96fc>,
maximum=10000000) at 1.cpp:29
大神看看怎么回事,就是传递字符串做文件名嘛,怎么就错了
1 #include <iostream>
2 #include <fstream>
3 #include <ctime>
4 #include <stdlib.h>
5 #include <string>
6
7 using namespace std;
8
9 const int MAXIMUM = 10000000;
10
11 int random_int( int start, int end );
12
13 void generate_random_ints_file(const string file_name, int maximum);
14
15 int main(void)
16 {
17 string file_name = "random_ints.txt";
18
19 generate_random_ints_file(file_name, MAXIMUM);
20
21 return 0;
22 }
23
24 int generate_random_int( int start, int end )
25 {
26 return start + rand() % (end-start+1);
27 }
28
29 void generate_random_ints_file(const string file_name, const int maximum)
30 {
31 ofstream file(file_name.c_str());
32
33 int i = 0;
34 int random_array[MAXIMUM];
35 int random_int = 0;
36
37 srand( (unsigned) time(NULL) );
38
39 while( i < maximum )
40 {
41 random_array[i] = i;
42 ++i;
43 }
44
45 i = 0;
46
47 while( i < maximum )
48 {
random_int = generate_random_int(i, maximum);
50
51 int tmp = random_array[random_int];