在我混合new
和malloc
的情况下,这种行为是否未定义?
int main()
{
int ***arr = new int**[1];
arr[0] = static_cast<int**>(malloc(sizeof(int**)));
arr[0][0] = new int;
arr[0][0][0] = 1;
//now, release memory using appropriate operator
}
可以。之后你必须相应地调用delete[]
,delete
和free
。注意不要把你从malloc
得到的东西和delete
等一起释放。
这种行为是否未定义,我正在混合新的和malloc?
示例中没有UB。
你可以这样做,但是没有好处。