06-21-2014
When wanting to provide an address to a called pointer
Your code crashes because you are passing the address that "name" is pointing to
which is null.
So what you must do is pass the address of name as
int ConvertIDToName(void *id, void *&name, size_t *size) { int status = 0; unsigned char *xIDname = "user4.microsoft.com"; *name = (unsigned char*)malloc(30); /* this will work with the change */ memcpy(*name, xIDName, *size); ... return(0); }
---------- Post updated at 08:08 AM ---------- Previous update was at 08:05 AM ----------
int ConvertIDToName(void *id, void *&name, size_t *size) { int status = 0; unsigned char *xIDname = "user4.microsoft.com"; *name = (unsigned char*)malloc(30); memcpy(*name, xIDName, *size); ... return(0); }
This User Gave Thanks to lsatenstein For This Post:
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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)
Discussion started by: ilak1008
3 Replies
2. Programming
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)
Discussion started by: umen
1 Replies
3. Programming
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)
Discussion started by: purplelightspar
2 Replies
4. UNIX for Dummies Questions & Answers
void asdf(char *asd)
is this thing a pointer? (1 Reply)
Discussion started by: khestoi
1 Replies
5. Programming
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)
Discussion started by: aaronwong
11 Replies
6. Programming
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)
Discussion started by: limmer
4 Replies
7. Shell Programming and Scripting
Hi,
I need to eliminate each second void line in a text file.
novus
MILLENNIO
ineo
frater
in
episcopatus
,
presbyter
et
diacon|diaconus
, (1 Reply)
Discussion started by: mjomba
1 Replies
8. HP-UX
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)
Discussion started by: skyineyes
0 Replies
9. Programming
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 OPENSOLARIS
memmove
memory(3C) Standard C Library Functions memory(3C)
NAME
memory, memccpy, memchr, memcmp, memcpy, memmove, memset - memory operations
SYNOPSIS
#include <string.h>
void *memccpy(void *restrict s1, const void *restrict s2,
int c, size_t n);
void *memchr(const void *s, int c, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
void *memcpy(void *restrict s1, const void *restrict s2, size_t n);
void *memmove(void *s1, const void *s2, size_t n);
void *memset(void *s, int c, size_t n);
ISO C++
#include <string.h>
const void *memchr(const void *s, int c, size_t n);
#include <cstring>
void *std::memchr(void *s, int c, size_t n);
DESCRIPTION
These functions operate as efficiently as possible on memory areas (arrays of bytes bounded by a count, not terminated by a null charac-
ter). They do not check for the overflow of any receiving memory area.
The memccpy() function copies bytes from memory area s2 into s1, stopping after the first occurrence of c (converted to an unsigned char)
has been copied, or after n bytes have been copied, whichever comes first. It returns a pointer to the byte after the copy of c in s1, or a
null pointer if c was not found in the first n bytes of s2.
The memchr() function returns a pointer to the first occurrence of c (converted to an unsigned char) in the first n bytes (each interpreted
as an unsigned char) of memory area s, or a null pointer if c does not occur.
The memcmp() function compares its arguments, looking at the first n bytes (each interpreted as an unsigned char), and returns an integer
less than, equal to, or greater than 0, according as s1 is lexicographically less than, equal to, or greater than s2 when taken to be
unsigned characters.
The memcpy() function copies n bytes from memory area s2 to s1. It returns s1. If copying takes place between objects that overlap, the
behavior is undefined.
The memmove() function copies n bytes from memory area s2 to memory area s1. Copying between objects that overlap will take place cor-
rectly. It returns s1.
The memset() function sets the first n bytes in memory area s to the value of c (converted to an unsigned char). It returns s.
USAGE
Using memcpy() might be faster than using memmove() if the application knows that the objects being copied do not overlap.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Stable |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
|Standard |See standards(5). |
+-----------------------------+-----------------------------+
SEE ALSO
string(3C), attributes(5), standards(5)
NOTES
Overlap between objects being copied can arise even when their (virtual) address ranges appear to be disjoint; for example, as a result of
memory-mapping overlapping portions of the same underlying file, or of attaching the same shared memory segment more than once.
SunOS 5.11 4 Feb 2009 memory(3C)