invalid conversion from `void*' to `char*' when using malloc?

c++, g++, malloc

Solution

In C++, you need to cast the return of `malloc()`

char *foo = (char*)malloc(1);

Problem

I'm having trouble with the code below with the error on line 5: error: invalid conversion from `void*` to `char*` I'm using g++ with codeblocks and I tried to compile this file as a cpp file. Does it matter? ``` #include <openssl/crypto.h> int main() { char *foo = malloc(1); if (!foo) { printf("malloc()"); exit(1); } OPENSSL_cleanse(foo, 1); printf("cleaned one byte\n"); OPENSSL_cleanse(foo, 0); printf("cleaned zero bytes\n"); } ```

Original source