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
rmvb(9F)						   Kernel Functions for Drivers 						  rmvb(9F)

NAME
rmvb - remove a message block from a message SYNOPSIS
#include <sys/stream.h> mblk_t *rmvb(mblk_t *mp, mblk_t *bp); INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI). PARAMETERS
mp Message from which a block is to be removed. mblk_t is an instance of the msgb(9S) structure. bp Message block to be removed. DESCRIPTION
The rmvb() function removes a message block (bp) from a message (mp), and returns a pointer to the altered message. The message block is not freed, merely removed from the message. It is the module or driver's responsibility to free the message block. RETURN VALUES
If successful, a pointer to the message (minus the removed block) is returned. The pointer is NULL if bp was the only block of the message before rmvb() was called. If the designated message block (bp) does not exist, -1 is returned. CONTEXT
The rmvb() function can be called from user, interrupt, or kernel context. EXAMPLES
This routine removes all zero-length M_DATA message blocks from the given message. For each message block in the message, save the next message block (line 10). If the current message block is of type M_DATA and has no data in its buffer (line 11), then remove it from the message (line 12) and free it (line 13). In either case, continue with the next message block in the message (line 16). 1 void 2 xxclean(mp) 3 mblk_t *mp; 4 { 5 mblk_t *tmp; 6 mblk_t *nmp; 7 8 tmp = mp; 9 while (tmp) { 10 nmp = tmp->b_cont; 11 if ((tmp->b_datap->db_type == M_DATA) && (tmp->b_rptr == tmp->b_wptr)) { 12 (void) rmvb(mp, tmp); 13 freeb(tmp); 14 } 15 tmp = nmp; 16 } 17 } SEE ALSO
freeb(9F), msgb(9S) Writing Device Drivers STREAMS Programming Guide SunOS 5.11 16 Jan 2006 rmvb(9F)
All times are GMT -4. The time now is 03:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy