字符串形参传递异常

字符串形参传递错误
本帖最后由 march_on 于 2013-04-14 21:59:19 编辑
写了一个程序,结果运行时有段错误,在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];