Sponsored Content
Top Forums Programming Malloc function returning NULL Post 302820531 by Taher Saifuddin on Thursday 13th of June 2013 01:48:09 AM
Old 06-13-2013
Thnx for the replies guys

@Shamrock
Entire code is actually quite big so can't post it here, although below is the loop
from where I took the fragment earlier. What this loop is doing is, its parsing a CSV file into tree structure
based on some logic.
Code:
while(!(feof(fformat)))
 { 
  i1++;
  if (feof(fformat)) 
  {
     break;
  }
  preseq = curseq; 
  fgets(getline1,max_length,fformat);
  strcpy(chklist,getline1);
 
  curseq = numpts(getline1);
  if(curseq == preseq+1)/* this for child*/
  { //printf("\n chkpt1"); 
   tmp = (format_tree *)malloc(sizeof(format_tree));
      if(tmp == NULL)
      {
      printf("Cannot create memory for tmp*1\n");
      exit(EXIT_STATUS_FAILURE);
      }
   tmp->brother = NULL;    
   tmp->child = NULL;
 
   tmp->level = curseq;
   cur_add->child = tmp;
   tmp->parent = cur_add;
   loadstruct(tmp);  
   cur_add = tmp;
  }
  else
  { //printf("\n chkpt2");  
   if(preseq == curseq)/* this for the same level*/
   { //printf("\n chkpt2.1");
   tmp = (format_tree *)malloc(sizeof(format_tree));
    if(tmp == NULL)
    {
     //tmp = (format_tree *)my_malloc(sizeof(format_tree));
       printf("Cannot create memory for tmp*2\n");
       exit(EXIT_STATUS_FAILURE);
    }
    tmp->brother = NULL;
    tmp->child=NULL;
 
                tmp->level = curseq;
    cur_add->brother = tmp;
          tmp->parent = cur_add->parent;
    loadstruct(tmp);
 
       cur_add = tmp;   
 
   }
   else
   {//printf("\n chkpt3");
    tmp = (format_tree *)malloc(sizeof(format_tree));
    if(tmp == NULL)
    {
       printf("Cannot create memory for tmp*3\n");
       exit(EXIT_STATUS_FAILURE);
    }
    tmp->brother = NULL;
    tmp->child=NULL;
                tmp->level = curseq;
 
    for(i=0;i<(preseq-curseq);i++)
    {
     cur_add = cur_add->parent;
    }
 
    cur_add->brother=tmp;
    tmp->parent = cur_add->parent;  
    loadstruct(tmp);
    cur_add = tmp; 
   }
 
  }
 
 }

@Jim
I executed the command "ulimit -a" on both servers and below are the results:
HPUX:
Code:
uxndap02:/app/rafms>ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         3145728
stack(kbytes)        131072
memory(kbytes)       unlimited
coredump(blocks)     4194303
nofiles(descriptors) 4096

Linux:

Code:
[r@SOURCE]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 257697
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 16384
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

10 More Discussions You Might Find Interesting

1. Programming

malloc function

Hello This is a simple program i carried out in my machine i dont know how it is working #include<alloc.h> #include<stdio.h> mian() { int *p,j; p= (int*)malloc(1); for(j=1;j<=580;j++) { *p=j; ++p; } p=p-580; for(j=1;j<=580;j++) { printf("%d",*p); } (7 Replies)
Discussion started by: rajashekaran
7 Replies

2. Solaris

malloc returning NULL if freemem high & swapmem low

Hi All, In my application malloc is returning NULL even though there is sufficient amount of free memory is available but swap memory is low. Is this possible that, if free memory is high & swap memory is low, malloc will not be able to allocate memory & return NULL ?:) Kindly look into... (5 Replies)
Discussion started by: Ritesh Kumar
5 Replies

3. UNIX for Dummies Questions & Answers

malloc returning NULL if freemem high & swapmem low (MPRAS version 3.03 )

Hi All,:) In my application malloc is returning NULL even though there is sufficient amount of free memory available but the swap memory is low. Is this possible that, if free memory is high & swap memory is low, malloc will not be able to allocate memory & return NULL ? Few details: ... (4 Replies)
Discussion started by: Ritesh Kumar
4 Replies

4. Shell Programming and Scripting

returning from a function

Hi all, I am very new to BASH shell programming. I need to return an integer from a function to the caller function. I did this: but it keeps giving me wrong return: Can someone help me out here, please? Thanks (2 Replies)
Discussion started by: alirezan
2 Replies

5. Programming

getservbyport - Always returning NULL servent

Hi, I am having an issue using getservbyport. Here is a little program to demonstrate the problem (removed the includes): int main(void) { struct servent *service; int memsize = sizeof(struct servent); service = (struct servent *)malloc(memsize); ... (2 Replies)
Discussion started by: goon12
2 Replies

6. Shell Programming and Scripting

Script returning null results

Hi, The following shell script returning null results could you please tell me whats the problem in script, ********************************* #!/bin/ksh . $HOME/conf/systemProperties/EnvSetup.properties a=`date +"%y%m%d"` set -x for i in `cat... (2 Replies)
Discussion started by: shivanete
2 Replies

7. Shell Programming and Scripting

Returning the name of function used

Hi All In my script, I can call on several functions. I have a logging function that is called by any of these functions. What I would like is some way of identifying which function I am using and pass this to the log function as some parameter. Is there some built in command or way of... (3 Replies)
Discussion started by: kingpin2502
3 Replies

8. Programming

Regarding the maximum memory allocated by malloc() function on HP-UX B11.11

In a 'C' program,when I am trying to allocate memory with the help of malloc () function, it is allocating the memory up to a certain limit for e.g. in my case, it is 670 MB (approx). malloc() returns NULL if I allocate more than this amount of memory.When I tried to allocate memory in chunks of... (1 Reply)
Discussion started by: vipinsachan
1 Replies

9. UNIX for Advanced & Expert Users

getservbyname returning NULL

OS : Solaris 10 When I try to get the "echo" service port, getservbyname is returning null. I checked - /etc/services having an entry for echo - echo 7/tcp (But still getservbyname returning null) Any other config required to consider? (1 Reply)
Discussion started by: satish@123
1 Replies

10. Programming

Getpwnam_r returning null with errno 25

I am calling getpwnam_r with all proper argument as below:- rv = getpwnam_r(name, result, buffer, buflen); This program runs fine on sol 8/9/10. But on sol 11 it returns NULL with errno set to 25 (#define ENOTTY 25 /* Inappropriate ioctl for device */) All boxes are... (2 Replies)
Discussion started by: Ranajit
2 Replies
CAP_INIT(3)						     Linux Programmer's Manual						       CAP_INIT(3)

NAME
cap_init, cap_free, cap_dup - capability data object storage management SYNOPSIS
#include <sys/capability.h> cap_t cap_init(void); int cap_free(void *obj_d); cap_t cap_dup(cap_t cap_p); Link with -lcap. DESCRIPTION
The capabilities associated with a file or process are never edited directly. Instead, working storage is allocated to contain a represen- tation of the capability state. Capabilities are edited and manipulated only within this working storage area. Once editing of the capa- bility state is complete, the updated capability state is used to replace the capability state associated with the file or process. cap_init() creates a capability state in working storage and returns a pointer to the capability state. The initial value of all flags are cleared. The caller should free any releasable memory, when the capability state in working storage is no longer required, by calling cap_free() with the cap_t as an argument. cap_free() liberates any releasable memory that has been allocated to the capability state identified by obj_d. The obj_d argument may identify either a cap_t entity, or a char * entity allocated by the cap_to_text() function. cap_dup() returns a duplicate capability state in working storage given by the source object cap_p, allocating any memory necessary, and returning a pointer to the newly created capability state. Once duplicated, no operation on either capability state affects the other in any way. When the duplicated capability state in working storage is no longer required, the caller should free any releasable memory by calling cap_free() with the cap_t as an argument. RETURN VALUE
cap_init() and cap_dup() return a non-NULL value on success, and NULL on failure. cap_free() returns zero on success, and -1 on failure. On failure, errno is set to EINVAL or ENOMEM. CONFORMING TO
These functions are specified in the withdrawn POSIX.1e draft specification. SEE ALSO
libcap(3), cap_clear(3), cap_copy_ext(3), cap_from_text(3), cap_get_file(3), cap_get_proc(3), capabilities(7) 2008-05-11 CAP_INIT(3)
All times are GMT -4. The time now is 06:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy