gpt4 book ai didi

c++ - 将 const char *ptr 分配给数组参数? C++

转载 作者:行者123 更新时间:2023-11-30 01:17:33 25 4
gpt4 key购买 nike

仅供引用:提供的答案是错误的,我找到了答案,它们写在下面。

在一道试题中,给出了一个函数原型(prototype)

void store(double *ptr, unsigned int length, char filename[]);

我们被要求调用这个函数来做一些事情......(现在与我的问题无关)。但是我们需要传递一个文件名来读取。并且它必须被这个 filename[] 字符数组接收。
以下是提供的答案。 (这是前几年的考试)。


#include <iostream>

using namespace std;
#define SIZE 10
int main(void)
{
const char *filename = "array.dat";
double a[SIZE];
for ( unsigned n = 0; n < SIZE; n++ )
a[n] = 0.0;
store(a, SIZE, filename); // if simply send "array.dat" as parameter it works.
return 0;
}

但是,这不适合我。在我看来,它也不能编译,因为我不能以这种方式将这样的 c 风格字符串分配给 char 数组,或者我相信。我已经搜索了很多,我只需要对此有所了解。谢谢。

最佳答案

线

const char *filename = "array.dat";

filename 定义为 const char* 类型。它不能用作 store 的参数,因为 store 需要 char [] 类型。

filename 的声明更改为:

char filename[] = "array.dat";

关于c++ - 将 const char *ptr 分配给数组参数? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198846/

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