#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char p [] = "TEST";
strcat (p, "VAL");
cout << p;
return 0;
}
如果我所理解的是正确的,像char p [] =“TEST”;将从堆栈分配空间。当我为这样的字符串调用strcat()时,如何调整p []的存储以容纳额外的字符?是否有效的字符串添加像char p [] =“测试”字符数组使用strcat
最后一个cout打印“TESTVAL”。像这样调用strcat是否有效?如果是的话,这是如何工作的?我的理解可能会有问题,但感觉就像我失去了联系。所以这可能很容易成为一个愚蠢的问题。请说明一下。
在这种情况下,我想知道为什么输出没有任何运行时问题是正确的? – NeonGlow
@NeonGlow纯粹的运气。 – Galik
@NeonGlow只是运气不好。尝试'strcat'的一些比'“VAL”更大的尺寸“。例如,使用这个答案在我的机器上崩溃。 – molbdnilo