gpt4 book ai didi

c++ - 动态字符数组没有给出正确的字符串长度?

转载 作者:行者123 更新时间:2023-11-30 00:38:01 24 4
gpt4 key购买 nike

我想要一个长度等于循环迭代的动态字符数组。

char* output;
for (short i=0; i<2; i++){
output = new char[i+1];
printf("string length: %d\n",strlen(output));
delete[] output;
}

但是 strlen 返回 16,我希望它是 1 和 2。

最佳答案

output 指向的新分配内存未初始化:它可能有任何内容。

strlen 要求它的参数是一个指向空终止字符串的指针,output 不是,因为它还没有被初始化。调用 strlen(output) 会导致您的程序表现出未定义的行为,因为它读取了这个未初始化的内存。任何结果都是可能的。

关于c++ - 动态字符数组没有给出正确的字符串长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com