Malloc 使用的内存多于指定内存?

  • 本文关键字:内存 于指定 Malloc c
  • 更新时间 :
  • 英文 :


我正在使用malloc为字符串分配内存:s=(char*) malloc(sizeof(char)*4)为什么我可以在字符串中存储超过 4 个字符?如果我分配了 4 个字节的内存,每个字符需要 1 个字节,为什么我可以在程序崩溃之前存储 8 个字符?

你可以这样做(在某些情况下(,但这会导致"未定义的行为"。UB 可以产生许多结果,包括看起来大部分时间都在工作,直到最大的客户尝试在他们最繁忙的一天运行您的应用程序。

你一定不能这样做。您可以使用各种工具来检测它(例如电子围栏、valgrind(

相关内容

最新更新