I have a function to which I will pass a struct ID and it will return me a string.
I will pass a pointer to store the name string and that pointer will be allocated memory by the function called.
The function ConvertIDToName() fails to store the allocated memory address in the void pointer.
I am unable to assign memory in the pointer and it gives me error from 3rd statement of function ConvertIDToName():
What am I doing wrong?
---------- Post updated at 02:33 AM ---------- Previous update was at 02:32 AM ----------
I missed the simple thing of typecasting the void pointer before using it.
This solves the issue:
First and foremost, this is not a homework for your information. I'm just new to using c-shell programming and I just wanted to make my life easier @ work.
Say, the file contains the following:
ID FILE NO. SL VP
1 1 22 33
1 2 ... (3 Replies)
Hello all
im trying to build function that will return void function pointer
what is mean is ( not working )
the main function
void * myClass::getFunction(int type){
if(type==1)
return &myClass::Test1;
if(type==2)
return &myClass::Test2;
}
void myClass::Test1(){... (1 Reply)
What is the difference between f(...) , f(void),f()
I know that f(void) doesn't take any parameters, but what about f() and f(...) Does the last call of function even exists? (2 Replies)
If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it:
(1) one is to pass a pointer-to-pointer parameter, like:
int my_malloc(int size, char **pmem)
{
*pmem=(char *)malloc(size);
if(*pmem==NULL)... (11 Replies)
N00B here. This function would be easier using a char pointer along with free. But I wish to learn how to use char static pointers (they do not require free, right ?).
How do I erase the content of a static pointer ? Terminating the string works but the static pointer's content is not being... (4 Replies)
i am trying to convert void pointer to pthread_t on hpux-itanium 64 bit which fails as below
"src/file.cpp", line 88: error #2171: invalid type conversion
pthread_t tid = reinterpret_cast<pthread_t>(m_threadId);
1 error detected in the compilation of "src/file.cpp"
... (0 Replies)
hi guys!
Is there such a thing as double void pointer dynamic allocation?
And if so is it something like this?
int n;
void** a;
a=malloc(n*sizeof(void*)); (12 Replies)
Discussion started by: vlm
12 Replies
LEARN ABOUT PLAN9
malloc
MALLOC(2) System Calls Manual MALLOC(2)NAME
malloc, free, realloc, calloc - memory allocator
SYNOPSIS
#include <u.h>
#include <libc.h>
void* malloc(long size)
void free(void *ptr)
void* realloc(void *ptr, long size)
void* calloc(long nelem, long elsize)
DESCRIPTION
Malloc and free provide a simple memory allocation package. Malloc returns a pointer to a new block of at least size bytes. The block is
suitably aligned for storage of any type of object. No two active pointers from malloc will have the same value.
The argument to free is a pointer to a block previously allocated by malloc; this space is made available for further allocation. It is
legal to free a null pointer; the effect is a no-op.
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. The call realloc(0, size) means the same as
Calloc allocates space for an array of nelem elements of size elsize. The space is initialized to zeros. Free frees such a block.
Alef
Except for calloc, these routines are available from Alef; they use the same arena as alloc. Malloc and realloc execute a check when they
fail, rather than return nil. Memory returned by malloc is cleared. Realloc does not guarantee new memory is cleared unless ptr is nil.
SOURCE
/sys/src/libc/port/malloc.c
SEE ALSO brk(2)DIAGNOSTICS
Malloc, realloc and calloc return 0 if there is no available memory. Errstr is likely to be set.
BUGS
The different specification of calloc is bizarre.
User errors can corrupt the storage arena. The most common gaffes are (1) freeing an already freed block, (2) storing beyond the bounds of
an allocated block, and (3) freeing data that was not obtained from the allocator. When malloc and free detect such corruption, they
abort.
MALLOC(2)