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
MALLOC(3)						     Library Functions Manual							 MALLOC(3)

NAME
malloc, free, realloc, calloc, alloca - memory allocator SYNOPSIS
#include <sys/types.h> #include <stdlib.h> #include <alloca.h> void *malloc(size_t size) void free(void *ptr) void *realloc(void *ptr, size_t size) void *calloc(size_t nelem, size_t elsize) void *alloca(size_t size) DESCRIPTION
Malloc and free provide a general-purpose memory allocation package. Malloc returns a pointer to a block of at least size bytes beginning on a word boundary. The argument to free is a pointer to a block previously allocated by malloc; this space is made available for further allocation, but its contents are left undisturbed. A call with a null ptr is legal and does nothing. Needless to say, grave disorder will result if the space assigned by malloc is overrun or if some random number is handed to free. Malloc maintains multiple lists of free blocks according to size, allocating space from the appropriate list. It calls sbrk (see brk(2)) to get more memory from the system when there is no suitable space already free. Realloc changes the size of the block pointed to by ptr to size bytes and returns a pointer to the (possibly moved) block. The contents will be unchanged up to the lesser of the new and old sizes. A call with a null ptr is legal and has the same result as malloc(size). Calloc allocates space for an array of nelem elements of size elsize. The space is initialized to zeros. Alloca allocates size bytes of space in the stack frame of the caller. This temporary space is automatically freed on return. Each of the allocation routines returns a pointer to space suitably aligned (after possible pointer coercion) for storage of any type of object. SEE ALSO
brk(2). DIAGNOSTICS
Malloc, realloc and calloc return a null pointer if there is no available memory or if the arena has been detectably corrupted by storing outside the bounds of a block. NOTES
Other implementations of malloc, realloc or calloc may return a null pointer if the size of the requested block is zero. This implementa- tion will always return a zero length block at a unique address, but you should keep in mind that a null return is possible if the program is run to another system and that this should not be mistakenly seen as an error. BUGS
When realloc returns a null pointer, the block pointed to by ptr may be destroyed. Alloca is machine dependent; its use is discouraged. 4th Berkeley Distribution May 14, 1986 MALLOC(3)
All times are GMT -4. The time now is 03:56 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy