假设我有一个返回 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/