gpt4 book ai didi

c++ - 使用 strcpy 从 'char' 到 'char*' 的无效转换

转载 作者:太空狗 更新时间:2023-10-29 23:47:01 24 4
gpt4 key购买 nike

好的,下面是我遇到问题的部分代码:

char * historyArray;
historyArray = new char [20];

//get input
cin.getline(readBuffer, 512);
cout << readBuffer <<endl;

//save to history
for(int i = 20; i > 0; i--){
strcpy(historyArray[i], historyArray[i-1]); //ERROR HERE//
}

strcpy(historyArray[0], readBuffer); //and here but it's the same error//

我收到的错误是:

"invalid conversion from 'char' to 'char*' 
initializing argument 1 of 'char* strcpy(char*, const char*)'

该项目旨在创建一个 psudo OS Shell,它将捕获和处理中断以及运行基本的 unix 命令。我遇到的问题是我必须将过去的 20 个命令存储到一个在堆栈上动态分配的字符数组中。 (并且还取消分配)

当我只使用二维字符数组时,上面的代码工作正常:

char historyArray[20][];

但问题是它不是动态的...

是的,我确实知道 strcpy 应该用于复制字符串。

如有任何帮助,我们将不胜感激!

最佳答案

historyArray 指向 20 个 char 的数组(的第一个元素)。您只能在该数组中存储一个字符串。

在 C 中,您可以创建一个 char** 对象并让它指向 char* 对象数组的第一个元素,其中每个元素指向一个字符串。这就是 main()argv 参数所做的。

但由于您使用的是 C++,因此使用 stringvector 并让库为您进行内存管理更有意义。

关于c++ - 使用 strcpy 从 'char' 到 'char*' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7575891/

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