【发布时间】:2021-04-02 05:46:49
【问题描述】:
我有一些代码块指定从主程序中获取一个数字并将其转换为char *
当我想在主程序而不是函数中打印时,问题就开始了。
这是我迄今为止尝试过的:
#include <stdio.h>
void help(int number, char* result);
int main()
{
char arr[100] = "";
int number;
printf("enter number: ");
scanf_s("%d", &number);
help(number, &arr);
printf("number is %d and string is %s\n", number, &arr);
return 0;
}
void help(int number, char* result)
{
*result = number;
}
结果结果:
数字是15,字符串是
我尝试了许多不同的方法和变化,但仍然没有运气。建议?
【问题讨论】:
-
创建一个全局变量?
-
只允许使用指针,因为它是基于指针的硬件
-
当数字 > 255 时你期望会发生什么?
-
我尝试使用 sprintf 并得到一个违规错误:“sprintf_s(arr, "%d", number);"
-
因为它是基于指针的硬件 如果这真的是在基于指针的硬件上,它不会有
scanf_s(),它只能有效且不可移植地实现微软在 Windows 上。提示:无论 MSVC 如何抱怨,都不要使用scanf_s(),因为它在骗你。
标签: c function pointers function-pointers