char* buffer=malloc(sizeof(long))报错invalid conversion from'void*'to'char*'
时间: 2024-05-09 10:16:06 浏览: 224
malloc与sizeof的合用的陷阱
这个错误是因为`malloc`函数返回的是`void*`类型的指针,需要进行类型转换才能赋值给`char*`类型的指针。改正方法如下:
```c++
char* buffer = static_cast<char*>(malloc(sizeof(long)));
```
或者可以使用`new`操作符来分配内存:
```c++
char* buffer = new char[sizeof(long)];
```
在使用完`buffer`后,需要使用`free`函数或者`delete`操作符来释放内存:
```c++
free(buffer); // 释放内存
// 或者
delete[] buffer; // 释放内存
```
阅读全文