以下代码片段中new char[n+1]
的功能是什么?我到处搜索过,但我仍然不明白。
代码片段
n = strlen(t.name);
a = new char[n+1];
a = t.name;
strcpy_s(name,a);
答案 0 :(得分:1)
使用此代码解决所有问题,C中的字符串以NULL结尾。因此,当您要将字符串复制到数组中时,应为尾随0
保留一个额外字符,因此+ 1
。
关于“new
运营商做了什么”,许多人中有一人possible references:
分配请求的字节数。这些分配函数由new-expressions调用,用于分配内存,然后初始化新对象。