по какой-то причине при запуске программы она отказывается вводить цикл for, а скорее просто зависает.
main()
{
char *buffer;
int chunk_offset, current_chunk_number, total_chunks;
int filelen;
filelen = ReadFileintoBuffer( buffer);
printf("file read \n"); // error break point 1
int events = filelen/eventlen; // number of 512 + 2 32 bit events events with timecode
int sp = 0;
int i,j;
int toterror[25];
printf("file of length %d has %d events \n", filelen, events);
printf(" i = %d \n", i);
for( i = 0; i < events; i++)
{
printf("analyzed %d events of %d", i, events);
sp=0;
int error[13];
Analyzeevent(buffer+i*eventlen, error);
if(error[0])
{
sp = 12;
}
for( j =1; j < 13; j++)
{
toterror[j+sp] += error[j];
}
}
printf("post for loop");
Printerrs(toterror, events);
exit(0);
}
Он печатает все до i = (в данном случае 9727988), затем ничего.все просто останавливается.Есть идеи, что случилось?я изучил c ++, и программирование на c очень странно и неудобно для меня сейчас.компилятор не выдает никаких предупреждений или чего-либо еще
спасибо за вашу помощь заранее.
edit: для ring0 вот код для ReadFileintoBuffer:
int ReadFileintoBuffer( char *buffer)
{
int filelen;
char text[200];
printf("Input File: " );
scanf( "%s" ,text);
FILE *file = 0;
int i;
//Open file
file = fopen(text, "rb");
if (!file)
{
fprintf(stderr, "Unable to open file \n");
exit(0);
}
//Get file length
fseek(file, 0, SEEK_END); // find the end of the file
filelen=ftell(file); // set the current pointer (currently at end from above) as file length
fseek(file, 0, SEEK_SET); // set pointer back to beginning of file
//Allocate memory
buffer=(char *)malloc(filelen+1);
if (!buffer)
{
fprintf(stderr, "Memory error! \n");
fclose(file);
return;
}
//Read file contents into buffer
fread(buffer, filelen, 1, file);
fclose(file); // clse the file, all in buffer now
return filelen;
}