gpt4 book ai didi

c - 如何设置一个数组等于 char* 方法的返回值

转载 作者:行者123 更新时间:2023-11-30 18:22:22 24 4
gpt4 key购买 nike

假设我有一个返回 char 数组的 char* 方法。我如何设置另一个字符数组等于该返回值?例如,这是 char* 方法:

char* work(int num){
char buf[32];
sprintf(buf, "%d", num);

return buf;
}

我需要在 main 方法中放入什么才能使用返回值?我试过了

int main() {
char rValue[32] = work(5);
}

但我得到“错误:数组初始值设定项必须是初始值设定项列表或字符串文字”

int main() {
char rValue[32];
rValue = work(5);
}

给我“错误:数组类型'char [32]'不可分配”。

我知道解决方案可能非常简单,但我迷路了。我如何访问返回值?

最佳答案

您想要做的是使用指针传递rValue

我不完全确定您想要实现的目标,但我的下面的修改允许在 gcc 上进行无错误的编译。

您正在做的是将 rValue 数组的第一个元素的地址传递到工作中。由于您正在直接处理原始数据,因此无需返回。这类似于某些语言“通过引用传递”时的情况

#include <stdio.h>

void work(int num, char *rValue) {
sprintf(rValue, "%d", num);
}

int main() {
char rValue[32];
work(5, rValue);
}

关于c - 如何设置一个数组等于 char* 方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23547544/

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