954,498 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

problem with realloc

realy desperate here.. :'(
my prog is getting data about problems (computer/electricity..ect (not real C problems)) from txt file..and every line in file has a different problem..so I made one PROBLEM problem; (object) and in my getProbDetails() function I'm getting the first line..reallocing to add one more object (creating array of problem objects) and then getting next line into the new object and so forth..(it's in a loop)
now I have a stupid problem in the line when I do "realloc" and I can't figure it out,the first loop runs but when it gets to realloc the program stops and I get a pop out window with error PLEASE help pps!! :confused:

typedef struct
{
.......
} PROBLEM;
typedef PROBLEM *ProbPtr;
void main()
{
__int probSize=1; //num of broblems
__int *probSizePointer; //pointer to num of broblems
__probSizePointer=&probSize;
__ProbPtr pProblem;
__PROBLEM arrProb; //the first problem object
__pProblem=&arrProb;
__getProbDetails(&pProblem,probSizePointer);
}
int getProbDetails(ProbPtr *pProblem, int *psize)
{
__STRING temp;
__ProbPtr ptr; //temp for new address after realloc
__........
__i=0;
__do
__{
_____fscanf(myfile,"%d",&(*pProblem+i)->probDate.day);
_____.....
/*MY PROG STOPS HERE SO I THINK THE PROBLEM IS IN THE REALLOC*/
_____if((ptr=(ProbPtr)realloc(*pProblem,(*psize+1)*sizeof(PROBLEM)))==NULL)
____{
________printf("Not enough memory ");
________return 0;
_____}
_____*pProblem=ptr;
_____(*psize)++;
_____i++;
__}while (!feof(myfile));
__flag=1; //file was read
__return (flag);
}

arcticM
Newbie Poster
19 posts since Aug 2009
Reputation Points: 10
Solved Threads: 0
 

Amazing. You took the time to add underscores so that your formatting wasn't lost and didn't bother to look for some kind of forum tag that would preserve it for you?

>PLEASE help pps!!
Here's a hint: realloc only works on memory that was previously returned by malloc, calloc, or realloc.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

you should read the documents abt realloc before you do it right away

MrNoob
Posting Whiz in Training
218 posts since May 2009
Reputation Points: 34
Solved Threads: 7
 
Here's a hint: realloc only works on memory that was previously returned by malloc, calloc, or realloc.


Thanks a lot!!! it worked!!! my stupid book said nothing about it I could have hit my head against the wall for another year!!!:confused:
THANK YOU!!:icon_cheesygrin:

arcticM
Newbie Poster
19 posts since Aug 2009
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You