【发布时间】:2011-02-21 13:41:56
【问题描述】:
这段代码中的strcpy() 有什么问题?
void process_filedata(char *filename)
{
void* content;
const char * buffer;
char * temp;
char * row;
char * col;
int lsize,buflen,tmp,num_scan; //num_scan - number of characters scanned
int m=0,p=0,d=0,j=0; //m - machine, p - phase, d- delimiter, j - job
FILE *file_pointer = fopen("machinetimesnew.csv","r");
if(file_pointer == NULL)
{
error_flag = print_error("Error opening file");
if(error_flag) exit(1);
}
fseek(file_pointer, 0 ,SEEK_END);
lsize = ftell(file_pointer);
buflen = lsize;
rewind(file_pointer);
// content = (char*) malloc(sizeof(char)*lsize);
fread(content,1,lsize,file_pointer);
buffer = (const char*) content;
strcpy(temp,buffer);
row = strtok(temp,"\n");
...............
...............
我遇到了分段错误..
【问题讨论】:
-
为什么malloc被评论了?
-
还要意识到
buffer是不必要的。只需将content设为char*。 -
为什么是一个字母的变量名?如果您花时间评论他们的名字,为什么不花额外的 2 秒时间来拯救自己和他人未来的困境并正确命名他们?
-
谢谢大家。我会做出改变。