Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将char指针传递给另一个函数_C++ - Fatal编程技术网

C++ 将char指针传递给另一个函数

C++ 将char指针传递给另一个函数,c++,C++,我研究了半天,搞不懂如何传递一个简单的字符指针,如何修改函数中的值。大多数解决方案都是修改函数以接受char**参数 我有一个无法修改的函数。我需要向它传递一个char指针,因为这个函数将给我一个新的计算char值。我被告知我可以传递一个指向字符数组的指针,它会工作,但我不确定如何做 我遵循了上面的帖子,并提出了以下代码,但它仍然不起作用。当我将指针传递给char arr[]时,它不会更改其值。我的目标是传递一个char指针,并能够通过传递它的引用在另一个函数中写入它。感谢您的帮助 enum

我研究了半天,搞不懂如何传递一个简单的字符指针,如何修改函数中的值。大多数解决方案都是修改函数以接受
char**
参数

我有一个无法修改的函数。我需要向它传递一个char指针,因为这个函数将给我一个新的计算char值。我被告知我可以传递一个指向字符数组的指针,它会工作,但我不确定如何做

我遵循了上面的帖子,并提出了以下代码,但它仍然不起作用。当我将指针传递给char arr[]时,它不会更改其值。我的目标是传递一个char指针,并能够通过传递它的引用在另一个函数中写入它。感谢您的帮助

enum STATUS {
    OK = 0,
    BAD = 1,
};

STATUS func1(char *pData)
{
    pData = "Hello World";

    cout << pData << endl;

    return OK;
}

int main()
{
    STATUS ret;
    char arr[] = "Example String";
    char* pArray = &arr[0];

    ret = func1(pArray);

    cout << arr << endl;
    cout << pArray << endl;


    getchar();

    return 0;
}
enum状态{
OK=0,
坏=1,
};
状态func1(字符*pData)
{
pData=“你好,世界”;
库特
我有一个无法修改的函数。我需要向它传递一个char指针,因为此函数将给我一个新的计算char值。有人告诉我可以向char数组传递一个指针,它会工作,但我不确定如何做

那不是真的。说那句话的人是在骗你,或者他们对这件事一无所知


当你使用

pData = "Hello World";
您正在修改
pData
指向的位置。但是,该更改是函数的本地更改。它不会更改调用函数中的数据。您可以使用
std::strcpy
进行更改,以影响调用函数

std::strcpy(pData, "Hello World");
STATUS func1(char*& pData)
{
    pData = "Hello World";

    cout << pData << endl;

    return OK;
}

您可以通过引用传递指针并更改指针的值。这将使更改对调用函数可见

std::strcpy(pData, "Hello World");
STATUS func1(char*& pData)
{
    pData = "Hello World";

    cout << pData << endl;

    return OK;
}
STATUS func1(char*&pData)
{
pData=“你好,世界”;
cout
STATUS func1(char*pData)
{
pData=“你好,世界”;
库特

<创建或删除一个较大的未初始化内存缓冲区?< /p>如果使用C++,请尝试使用C++。使用“代码> const string < /COD>而不是<代码> char */COD>。函数FUL1已经由别人制造了,我不能修改它。如果我声明变量为const字符串,我需要修改函数1()。哦,这是完全忽略了这一点的C++课程之一吗?祝你好运,但我希望你能做到这一点,但这远不是C++所涉及的。那不应该用,因为<代码> PARLY < /C> >指向<代码> const char */Cord>。这可能是未定义的行为。
strcpy
不是你想要在没有
gcc--yolo
@tadman的情况下使用的东西,我认为我们沟通不畅。在
main
中,OP使用的是
char arr[]=…
。这是可修改的。请记住,我无法修改func1(char*pData) function@JC203,在这种情况下,使用std::strcpy是正确的解决方案正在执行,但此函数需要一个字符指针。我正在尝试找出如何在不修改任何内容的情况下将字符指针传递给func1。在这种情况下,您传递的是正确的,但测试是错误的。它失败,出现II类错误。
char *ptr = new char[1000];
//etc....
if(ptr) delete ptr;