一维静态指针和一维new分配的动态指针,均不可以delete.

char *simFilePath = "G:\\WorkSpace\\FileOperation\\SimilarityResult\\SimilarityTotalResult.txt";

simFilePath = NULL; // 正确,指针数值被赋为NULL...

delete []simFilePath // 错误: 字符串指针被复制了,就是一个普通的指针类型.

  1. 一维 定义时初始化的 字符串指针 属于静态指针, 不可以delete .若使用delete删除则是操作栈区,导致程序错误无法结束,但VS编译器又不提示出错.
  2. 一维 new分配的字符串指针,也不可以delete. 若使用delete删除则是操作栈区,导致程序错误无法结束,但VS编译器又不提示出错.
  3. 二维及多维的 动态指针(使用new声明,delete释放) , 需要释放空间.

字符串指针 与 new type * 动态分配不同.new动态分配必须释放delete,但是指针是静态变量无需删除.但要注意置NULL.

原文地址:https://www.cnblogs.com/xiangwengao/p/2419265.html