以下是一个 C++ 程序,用于在动态分配的内存上执行一些操作。程序如下:
#include <iostream>
#include <cstdlib>
int main() {
int num = 5;
int* p = (int*)malloc(num * sizeof(int));
for(int i = 0; i < num; i++) {
*(p + i) = i;
}
free(p);
std::cout << "After freeing memory\n";
for(int i = 0; i < num; i++) {
std::cout << *(p + i) << " ";
}
return 0;
} 以下哪个选项最有可能是程序在运行完毕后的输出内容?
AAfter freeing memory
0 0 2 3 4
BAfter freeing memory
Segmentation fault
CAfter freeing memory
0 1 2 3 4
D程序会导致编译时错误