通过引用处理C中的字符数组

尼蒂卡

我想像这样使用时更改字符数组的值

char *str;
fun(str);

void fun(char *str) {
    str = (char *) ("changed");
}

它没有做任何事情,并且str为null

而以这种方式

char *str;
fun(&str);

void fun(char **str) {
    *str = (char **) ("changed");
}

一切都好。但是我有一个函数定义为void fun(char * str)的限制,如何使用此用例更改值

chux-恢复莫妮卡

我想更改字符数组的值

使用fun(char *str)str是一个指针。要更改字符数组的值,请不要更改指针str将存储str的内容更改为。

void fun(char *str) {
    // str = (char *) ("changed");
    str[0] = 'c';
    str[1] = 'h';
    str[2] = 'a';
    str[3] = 'n';
    str[4] = 'g';
    str[5] = 'e';
    str[6] = 'd';
    str[7] = '\0';
    // or simply 
    strcpy(str, "changed");
}

确保在调用指针时引用了可用空间

char buffer[100] = "Before";
printf("<%s>\n", buffer);
fun(buffer);
printf("<%s>\n", buffer);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中通过引用传递多维数组

来自分类Dev

在C中通过引用传递数组

来自分类Dev

在C中通过引用传递多维数组

来自分类Dev

在C ++中通过引用传递数组

来自分类Dev

在C中通过引用传递数组

来自分类Dev

如何在 C# 通用处理程序中引用从 javascript 接收的反序列化对象属性?

来自分类Dev

在C中处理字符串数组

来自分类Dev

如何在C ++中通过引用传递数组元素?

来自分类Dev

在C中通过引用传递二维数组

来自分类Dev

C中的堆栈数组实现-通过引用理解

来自分类Dev

通过C ++中的引用传递未签名的char数组

来自分类Dev

通过引用数组传递给C ++中的模板函数

来自分类Dev

在 C#3.5 中通过引用返回数组

来自分类Dev

在C ++中通过引用和值传递字符串

来自分类Dev

通过使用引用返回静态字符数组

来自分类Dev

通过引用传递字符指针数组的混淆

来自分类Dev

如何在C ++中引用动态分配的字符数组

来自分类Dev

通过字符串引用数组元素,并在awk中初始化数组

来自分类Dev

如何在c中处理字符串数组

来自分类Dev

从集成测试中调用处理程序

来自分类Dev

C#通用处理器

来自分类Dev

C ++中线程的创建/重用处理

来自分类Dev

C#通用处理器

来自分类Dev

如何使用循环引用处理类对象?

来自分类Dev

Json端点循环引用处理程序HTTP 500错误

来自分类Dev

在C ++中通过引用传递?

来自分类Dev

学习处理文件,尝试通过引用fcn传递结构数组

来自分类Dev

通过引用传递数组并修改值C ++

来自分类Dev

C ++通过引用传递位域数组