I am porting a project to the iPhone and it uses realloc
and memcpy
which are not found. What is the header to include?
It's a project mixing Objective C and C++ and I am starting to be lost.
Thanks in advance for your help!
I am porting a project to the iPhone and it uses realloc
and memcpy
which are not found. What is the header to include?
It's a project mixing Objective C and C++ and I am starting to be lost.
Thanks in advance for your help!
In C:
#include <string.h> // memcpy
#include <stdlib.h> //realloc
In C++, remove the .h
and prefix with a c
. In C++, they will be placed in the std
namespace, but are also global.
string.h
and stdlib.h
work in C++ just as well and you can keep using realloc
, memcpy
instead of std::realloc
, std::memcpy
etc., which seems to be more in line with what the original poster wanted. –
Gutbucket In C++ it's more idiomatic to use std::copy
than C's memcpy
, although the latter does work just as well. To get std::copy
, you need to #include <algorithm>
.
There's not a direct C++ equivalent to realloc
, though.
realloc
in C++ (since, of course, the C++ standard library includes the entirety of the C89 standard library). I said that there is not a new C++ standard library function that encompasses the functionality of realloc
as std::copy
does for memcpy
. Although I suppose my intent is not obvious if my answer is read in isolation as opposed to in conjunction with the other, already accepted answer. –
Touchhole © 2022 - 2024 — McMap. All rights reserved.
#ifdef __cplusplus
/#else
to automatically include the correct ones for either C or C++. – Astarte