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=“你好,世界”;
coutSTATUS 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;