Sponsored Content
Top Forums Programming *** glibc detected *** ./a.out malloc() memory corruption Post 302825121 by dare on Sunday 23rd of June 2013 03:21:28 PM
Old 06-23-2013
Code:
#include<stdio.h>
	#include<stdlib.h>
	#include<time.h>

	int random_no(int);
	void calc_file_row_col(FILE *,int *,int *);

	int main()
	{
	int i,j,z;
	int temp=0;
	int row,column;

	FILE *fp;
	char x,**a;

	for(z=0;z<2;++z){
	fp=fopen("poly.dat","r");
	
	calc_file_row_col(fp,&row,&column);     //Function which calculates 
                                                      // the no of rows and column of a file
	
        a=calloc(row,sizeof(char *));			// Declare a 2D array of size 
                                                                // row by column   
	for(i=0;i<row;i++)
		a[i]=calloc(column,sizeof(char));

	for(i=0;i<row;i++)				//  Read the elements of file fp into 
		{                                      //  array a
		for(j=0;j<column+1;j++)
			{
			x=getc(fp);
			if(x=='\n')
			{}
			else
			{
			*(*(a+i)+j)=x;
			}
		}}

	fclose(fp);
	fseek(fp,0,SEEK_SET);

	temp=random_no(row);			// Generates a random no. between 0 and row
	printf("temp=%d\n",temp);

	fp=fopen("poly.dat","w");

	for(i=0;i<temp;i++)		//Write elements from 0 to temp and then temp to row in file fp; 
		{
		for(j=0;j<column;j++)
			fprintf(fp,"%c",a[i][j]);

	fprintf(fp,"\n");
	}

	for(i=temp+1;i<row;i++)
		{
		for(j=0;j<column;j++)
			fprintf(fp,"%c",a[i][j]);

		fprintf(fp,"\n");
		}	

	fclose(fp);	

	for(i=0;i<row;i++)
	free(a[i]);

	free(a);
	a=NULL;
	}

	return 0;
	}

	int random_no(int range)
	{
	int LOW=0;							
	int r;						
	time_t seconds;                                 
	time(&seconds);                                 
	srand((unsigned int)seconds);                                       
	r = rand() % (range - LOW + 1) + LOW;                       
	return r%range;
	}

	void calc_file_row_col(FILE *poly,int *row,int *column)
	{
	int m=0;
	int n=0;
	char x;
	fseek(poly,0,SEEK_SET);
	while((x=getc(poly))!=EOF)
	{
	if(x=='\n'){
		m++;
		n=0;
		}
	else{
		n++;
		*column=n;
		}
	}
	*row=m;
	printf("row=%d column=%d\n",*row,*column);
	fseek(poly,0,SEEK_SET);
	}



The file poly.dat is:

Code:
	00132404 
	00013240 
	00001324 
	a0000132 
	16000013 
	53200001 
	05460000 
	4061a000 
	24062a00 
	32406fe0 
	132407aa 
	0132407d 
	13240860 
	00013240 
	00001324 
	e0000132

Moderator's Comments:
Mod Comment Please use CODE tags; not ICODE tags for multi-line blocks.

Last edited by Don Cragun; 06-23-2013 at 05:46 PM.. Reason: Fix tags
 

10 More Discussions You Might Find Interesting

1. Programming

*** glibc detected *** double free or corruption: 0x40236ff4 ***

when i try to use the class i wrote, i either get this: *** glibc detected *** double free or corruption: 0x40236ff4 *** and the proccess exits with an error code of 0; or it segfaults. could someone look at my header file (with imp.) to give me some insight as to why its not working? ... (19 Replies)
Discussion started by: norsk hedensk
19 Replies

2. Programming

Pointer to a struct (with pointers) *** glibc detected *** double free

I am using a structure defined as follows struct gene_square { double *x; double *y; };I have class, with a member function which is a pointer of this type: gene_square* m_Genes;I am allocating memory in the constructors like this: m_Genes = new gene_square; for (ii=0;... (1 Reply)
Discussion started by: jatoo
1 Replies

3. Programming

Why does this occur? *** glibc detected *** malloc(): memory corruption: 0x10013ff8 ***

there seems not to be error in this segment. In some computers, it can work well. But in others, it will give a failure. why it ocurrs and how to deal with it? in a function: if( *ver == NULL ) { *ver = (vertex *) malloc(sizeof(vertex)); //this line ... (17 Replies)
Discussion started by: cdbug
17 Replies

4. Programming

solved: glibc detection corruption using a fork in popen

Hi, I am having a hell of a time getting this to work. So basically, I have opened a popen to run a program that is going to prompt an action to occur half way through, when it gets to this I need to create a separate process and do some stuff, then return to the original process. This works... (0 Replies)
Discussion started by: imrank27
0 Replies

5. Programming

./match_pattern.out: malloc(): memory corruption: 0x0000000013a11600 ***

Hi All, I have a simple code which does some computation by matching string patterns. In brief: 1. The code reads .dat and .txt files. 2. .dat files are huge text files and .txt files contain some important words. 3. I am just doing strstr to find the patterns. 4. The function returns the... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

6. Programming

*** glibc detected *** ./a.out: malloc(): memory corruption (fast):

*** glibc detected *** ./a.out: malloc(): memory corruption (fast): Posted A minute ago M trying to make multiway tree and dont know what happend when this part of code get executed: 01void ins(NODE *ptr) 02{ 03 //working 04 if(ptr!=NULL) 05 { 06 SNODE *var=NULL; 07 var=(SNODE... (3 Replies)
Discussion started by: exgenome
3 Replies

7. Programming

glib detected: malloc() memory curruption

I am using libxml2 library for XMl parsing and libxml++ is C++ wrapper over that. So I am using API of libxml++. I am creating my class and composing instance xmlpp::Node *pNode in that. my class also have funciton prepareXPathQuery() which creates query string and have other fucntion... (2 Replies)
Discussion started by: sharadwagh
2 Replies

8. Programming

*** glibc detected *** : malloc(): memory corruption (fast)

Hi Friends, while executing the below code, am getting *** glibc detected *** ./ok: malloc(): memory corruption (fast) error, please suggest how to solve this issue. #include <stdio.h> #include <string.h> #include <sqlca.h> #include <alloca.h> /* Define constants for VARCHAR... (2 Replies)
Discussion started by: mpjobsrch
2 Replies

9. Programming

C++ glibc detected double free or corruption(!prev) using shared library

Currently I test a shared library vendor provided in linux , the following is the simple source : #include <iostream> using namespace std; extern int test1(); extern int test2(); int main() { cout << "hello world" << endl ; return 0 ; cout << "Test 1" << endl; ... (6 Replies)
Discussion started by: barfatchen
6 Replies

10. Homework & Coursework Questions

FORTRAN error *** glibc detected ***

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I'm doing aproximation of derivative called five-point stencil. For every value of x, in interval , in step... (0 Replies)
Discussion started by: antonija
0 Replies
All times are GMT -4. The time now is 05:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy