gpt4 book ai didi

C++ cin 到 c 字符串动态分配

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:16 25 4
gpt4 key购买 nike

试图找出 c 字符串机制背后的原因。

char** text;
text = new char*[5];
for(int i = 0; int < 5; int++) {
cout << endl << "Enter a phrase: ";
cin >> text[i];
cout << text[i];
}

我不完全确定为什么这对前 2 次迭代有效,甚至成功显示它们,但在第 3 次迭代时出现段错误。

最佳答案

您正在使用未初始化的内存。您遇到未定义的行为。

线

text = new char*[5];

为五个指针分配了内存,但这些指针尚未初始化以指向任何有效的内容。在使用 text[i] 读取数据之前,您必须为其分配内存。

for(int i = 0; int < 5; int++) {
cout << endl << "Enter a phrase: ";
text[i] = new char[SOME_SIZE_LARGE_ENOUGH_FOR_YOUR_NEED];
cin >> text[i];
cout << text[i];
}

然后,它应该可以工作了。

关于C++ cin 到 c 字符串动态分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706651/

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