C++求助 为什么运行会出现内存引用错误?怎么处理呢?

来源:百度知道 编辑:UC知道 时间:2024/06/16 17:21:05
//部分
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <time.h>
#define NULL 0
void test1();

void test2();
void create_1(int N,int L_input[]);
void reduce_1(int N,int L_input[]);
void main()
{
test1();
test2();
}

void test1()
{
FILE *fw;
char temp_char[10];
fw=fopen("satellite_neighbor.txt","w");
assert(fw!=NULL);
for(int i=0;i<1000;i++)
{
int temp_int;
int result_d;
temp_int=rand();
result_d=(temp_int*1000)/RAND_MAX;
if(result_d==0)
{
temp_int=rand();
result_d=(temp_int*1000)/RAND_MAX;
}
else
{printf("%d,",result_d);
sprintf(temp_char,"%d",result_d);
fprintf(fw,"%s,",temp_char);
}
}
printf("\n")

可能是指针使用不当引起的,比如没有分配地址、或者没有初始化等等~~

// 产生随机数序列,以文本方式写入文件
void test1(void)
{
FILE *fw;
int result_d;

fw=fopen("satellite_neighbor.txt","w");
if(fw==NULL) exit(0);

randomize(); // 产生随机数种子
for(int i=0;i<1000;i++)
{
result_d=rand()%1000+1; // 随机数范围1~1000
printf("%d,",result_d);
if((i+1)%100==NULL) putchar(10);
fprintf(fw,"%d ",result_d); // 以空格分隔
}
printf("\n");

fclose(fw);
}

// 读入文件中写入的随机数序列
void test2(void)
{
FILE *fr;
int L_all[1000];

fr=fopen("satellite_neighbor.txt","r");
if(fr==NULL) exit(0);

for(int i=0;i<1000;i++)
fscanf(fr,"%d",L_all[i]);

create_1(100,L_all);
fclose(fr);
}

LZ是不是这个意思?? BC