[ILUG-BOM] Buggy C prog
Sat Sep 28 23:48:56 IST 2002
On Friday 27 September 2002 07:40 am, Nikhil Joshi wrote:
> if ((*arg = (char *) malloc (30)) == NULL)
> printf ("Error allocating memory \n");
> exit (1);
Boy, you're not advancing the "arg" pointer....
so, it is something like
arg = (char *)malloc(30);
I guess, this is not what you want, right???
In this case, what you need to do is advance the arg pointer.
for( i =0 ; i < 4; i++)
if((*(arg + i) = (char *)malloc(n * sizeof(char))) == NULL)
perror("Mem Allocation Error...\n");
I guess, in your earlier program, you'd done something like
for(i = 0; i < 4; i++)
if((arg[i] = (char *)malloc(30)) == NULL)
I don't see any point why this should give you Segmentation fault.
It seems to work for me though....
It is exactly what the above code will do, using the offset alongwith
But, if you want a simple and better way, I suggest you use C++.
The string class (which in fact is a typedef to the base_string<char>
template) is simple to use. Also, it will handle the memory allocation
problems internally. Refer to the documentation for more details.
MCA Student @ VJTI
kunal at vjtimca.net
kgangakhedkar at softhome.net
kgangakhedkar at hotpop.com
Although golf was originally restricted to wealthy, overweight
today it's open to anybody who owns hideous clothing.
-- Dave Barry
More information about the Linuxers