【问题标题】:Get character array address then convert to pointer char获取字符数组地址然后转换为指针char
【发布时间】:2019-03-22 01:33:29
【问题描述】:

我将字符串和字节数组转换为字符数组。

char nameData[90];
char passData[90];
strcpy(nameData, name.toStdString().c_str()); //string
strcpy(passData, pass.data()); //bytearray

现在我需要获取nameData的地址和passData来设置它为指针吗? 还是有一个简单的将字符串和字节数组转换为字符指针的方法?

我需要将其转换为 char 指针以将其存储到文件中。

【问题讨论】:

  • name.toStdString().c_str() 可能是您需要做的所有事情,或者可能是 name.toStdString().data()。很难确定。你可以为这个char 数组添加更多你想要的痛苦吗?

标签: c++ pointers char


【解决方案1】:

我需要获取nameData的地址

一个 char 指针指向一个 char。严格来说,它并不指向数组。

但是,您的数组是一个 char 对象数组。所以,我认为你的意思实际上是 “我需要获取 nameData 的第一个字符的地址”

这很简单。数组可以隐式转换为指向数组第一个元素的指针。实际上,每当使用该值时,数组名衰减到该指针。所以,只需分配指针:

char* pointer = nameData;

我需要将其转换为 char 指针以将其存储到文件中。

您可能甚至不需要指针变量。只需将数组直接传递给接受字符指针参数的函数即可。

【讨论】:

  • 但是如何使用指针呢?因为 *pointer 只获取 char[0] 数据,所以我不能只使用指针。我需要*指针。有可能吗?
  • @GraceJacinto but how can I use the pointer? 这是一个指针。你可以读取它的值,间接通过它,增加它等等。I need *pointer. is it possible?我不明白你的意思。
【解决方案2】:

我认为只使用类型转换就可以了。 例如char* pNameData = (char*) nameData。事实上,您可以在 C 或 C++ 中直接将 nameData 用作 char* 指针。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多