char *m_OSD[31] = malloc(1024*1024); return m_OSD[layer];
时间: 2024-01-01 08:04:31 浏览: 57
这段代码有错误,无法通过编译。原因是 `char *m_OSD[31]` 定义了一个指针数组,而 `malloc(1024*1024)` 返回的是一个 `void*` 类型的指针,这两个类型不兼容。如果你想要动态分配一个 1024*1024 字节的内存空间,并将其赋值给指针数组 `m_OSD` 中的某个元素,你需要将其转换成 `char*` 类型的指针,然后再进行赋值操作,例如:
```
char* p = (char*)malloc(1024*1024);
m_OSD[layer] = p;
```
这样就可以将指向动态分配的内存空间的 `char*` 类型的指针赋值给指针数组 `m_OSD` 中的某个元素了。注意,这里的 `layer` 表示数组的下标,需要保证其在 0 到 30 的范围内。
阅读全文