gpt4 book ai didi

c - 如何在 C 中将一个整数连接成一个字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:41 25 4
gpt4 key购买 nike

有问题的代码部分试图解码 MIPS 指令正在使用的寄存器。

这是通过传入寄存器的整数值来实现的,然后应该返回一个包含寄存器名称的字符串。执行此操作的 prince 语句在这里,它调用 getReg 来获取字符串。

printf("$%d aka $%s\n", itype->rs, getReg(itype->rs));

到目前为止,我已经尝试将它们连接起来(没有 case 语句):

char* getReg(int d) {
char out[4];
sprintf(out, "a%d", (d - 4));
return out;
}

但是输出结果是这样的:

$6 aka $ìü(

什么时候应该:

$6 aka $a2

我哪里出错了?

最佳答案

您正在返回局部变量的地址 (out)。

char* getReg(int d) {
char out[4];
sprintf(out, "a%d", (d - 4));
return out;
}

out 的范围和生命周期仅在函数 getReg() 内。

out 动态分配内存以返回和访问外部函数。 (并且足够大),如下图

#define SIZE 25
char* getReg(int d) {
char *out = malloc(SIZE*sizeof(char));
sprintf(out, "a%d", (d - 4)); // I don't know about calculation??
return out;
}

不要忘记释放内存。

关于c - 如何在 C 中将一个整数连接成一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14836461/

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