gpt4 book ai didi

C++ Char 指向 char 数组的指针

转载 作者:太空狗 更新时间:2023-10-29 20:00:00 25 4
gpt4 key购买 nike

我阅读过的所有已发布答案均无效,所以我再次提问。

我正在尝试将 char 指针指向的 string 数据复制到 char 数组中。

我有一个从 ifstream 读取到 char 数组的函数

char* FileReader::getNextBytes(int numberOfBytes) {
char *buf = new char[numberOfBytes];

file.read(buf, numberOfBytes);

return buf;
}

然后我有一个结构:

struct Packet {
char data[MAX_DATA_SIZE]; // can hold file name or data
} packet;

我想将 getNextBytes(MAX_DATA_SIZE) 返回的内容复制到 packet.data 中;

编辑:让我向您展示我从下面得到的所有答案中得到了什么(memcpy、strcpy、作为参数传递)。我认为错误来自其他地方。我正在读取一个二进制文件(它是一个 png)。我将在 fstream 为 good() 时循环并从 fstream 读取到 buf(可能是数据数组)。我想看看我读过的内容的长度:

cout << strlen(packet.data) << endl;

每次都会返回不同的尺寸:8个529604635866156之后,尽管文件有 13K + 字节长,但显然没有剩余字节可供读取。

最佳答案

这可以使用在/中声明的标准库函数 memcpy 来完成:

strcpy(packet.data, buf);

这需要 file.read 返回以 '\0' 结尾的正确字符系列。您可能还想确保 numberOfBytes 足够大以容纳整个字符串。否则你可能会遇到段错误。

关于C++ Char 指向 char 数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9511619/

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