基本上我想问的是:
char *buffer;
buffer = (char*) malloc (sizeof(char)*bytes);
free(buffer);
//Somehow read buffer if possible,if it failed give return value ,but not crash or stop the whole program
//(examples as Segmentation fault and so on)
是否可以做到这一点?
最佳答案
当然可以!这只是一个糟糕的想法....
您可以释放 buffer
,但要为未定义的行为 做好准备,其中包括段错误和其他您不想要的疯狂事情。我有一些建议:
- 如果这真的是 c++,你不应该使用
malloc
你应该使用new
和delete
或者更好的std::string
和std::vector
。 - 您可能以错误的方式解决了这个问题,您不应该尝试读取已经释放的内存,而应该保留您认为有必要读取的内存。
- 关于调试,使用调试器,例如
gdb
...
关于c++ - 如何尝试读取未分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275428/