Switching to C from Java, and I'm having some troubles grasping memory management
Say I have a function *check_malloc that behaves as such: 
// Checks if malloc() succeeds.
void *check_malloc(size_t amount){
  void *tpt;
  /* Allocates a memory block in amount bytes. */
  tpt = malloc( amount );
  /* Checks if it was successful. */
  if ( tpt == NULL ){
      fprintf(stderr, "No memory of %lu bytes\n", amount);
       exit(1); 
  }
  return tpt;
}
I also have the following variables to work with:
FILE *f = fopen("abc.txt", "r");  // Pointer to a file with "mynameisbob" on the first line and 
                                  //                        "123456789"   on the second line 
char *pname;                      // Pointer to a string for storing the name
}
My goal is to use *check_malloc to dynamically allocate memory so that the String pointed to by *pname is just the correct size for storing "mynamisbob", which is the only thing on the first line of the text file. 
Here is my (failed) attempt:
int main(int argc, char *argv[]){
FILE *f = fopen("abc.txt", "r");  // A file with "mynameisbob" on the first line and 
                                  //             "123456789"   on the second line 
char *pname;                      // Pointer to a string for storing the name
char currentline[150];            // Char array for storing current line of file
while(!feof(f)){
    fgets(currentline,100,f);
    pname = ¤tline; 
}
But I know this probably isn't the way to go about this, because I  need to use my nice check_malloc* function. 
Additionally, in my actual text file there is a "<" symbol before the name on the first line.But I just want the *pname to point to a String saying "mynameisbob" without the "<" symbol. This isn't that important now, it just is reinforcement to me that I know I can't just set the pointer to point straight to currentline. 
Can anyone help me fix my thinking on this one? Thanks a lot.
 
     
    