gpt4 book ai didi

c++ - 声明 char[][512]?

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:01 25 4
gpt4 key购买 nike

我有一个 C++ SDK,它需要一个 char[][512] 作为参数。我知道这应该是一个文件名列表,文件的数量可能会有所不同。对于我的生活,我无法弄清楚如何声明这一点。我有一个 CString 数组,我正在尝试使用 strcpy_s 复制它们,然后将它们传递到 SDK 中。关于如何执行此操作的任何想法?

最佳答案

当用于声明函数的参数时,此声明具有特殊含义。在参数列表中,它等同于 char[100][512]char[123][512]char[3][512](你明白了 - 第一个大小可以是任何大小,它被忽略)以及 char (*)[512]。实际上,它将接受第一个大小灵活(任意)的二维字符数组作为参数。

例如,您实际传递给此函数的数组应使用具体的第一个大小声明

char names[3][512] = { "abc", "cde", "fgh" };

当然,如果您在编译时知道第一个大小。

如果第一个大小仅在运行时已知(例如,n),则必须动态分配数组

char (*names)[512] = new char[n][512];
// Now fill it with names

或者,更优雅地,使用 typedef

typedef char TName[512];
TName* names = new TName[n];
// Now fill it with names

我希望您所说的 SDK 函数还要求您将名称数组的第一个大小作为另一个参数传递。

关于c++ - 声明 char[][512]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1580935/

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