我有一个与 char 指针的动态内存分配有关的奇怪问题。我有类似的东西
char *input = new char; //1
gets(input) //2
char *dest = new char; //3
在第 3 步期间,我在运行时遇到堆损坏错误。仅当我输入的字符串长度超过 23 个字符时才会发生这种情况。
如果我不做任何新的操作,那么就没有问题。
如果我指定,此问题已解决
char *input = new char[100];
但我希望输入根据用户的输入是动态的。
我不确定在这种情况下 24 字节的作用是什么。我不想限制为 100 个或一些 n 个字符...我在内存分配方面有点弱...有人可以解释这种情况吗?