我可以将整数分配给字符指针数组吗?

标签 c malloc

int k=5;
char* result = (char *)malloc(100 * sizeof(char));
result[count] = k;

考虑到上面的代码,如果我打印 result[count] 的内容,它会打印笑脸符号。我尝试了如下,但没有用。

result[count]=(char)k;

有人可以帮助我吗?

我认为 malloc(100*sizeof(char)) 将连续创建每个字符大小的 100 block 。如果我错了请纠正我?

最佳答案

我将忽略有关数组和 malloc 的所有废话,因为它与您描述的问题无关。您似乎本质上是在问“这段代码将打印什么:”

char c = 5; 
printf("%c", c);

它将在符号表中打印符号 5,很可能是不可打印的字符。当遇到不可打印的字符时,某些实现会选择打印非标准符号,例如笑脸。

如果要打印数字 5,则必须使用字 rune 字:

char c = '5';
printf("%c", c);

或者使用带有“魔数(Magic Number)”的不良风格:

char c = 53;   // don't write code like this
printf("%c", c);

关于我可以将整数分配给字符指针数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991184/

相关文章:

c++ - 如何找到 "my"lib目录?

c - mmap2函数用asm编写,用c调用

c - Malloc 中止特定输入

c++ - C++ 中的 Malloc 函数

c# - PInvoke - 试图读取或写入 protected 内存。这通常表明其他内存已损坏

c -/net/ipmr.c中的MFC_HASH

c - 如何使用 C 与 COM 对象交互?

c - 如何动态分配二维字符数组?

c - 从类型 'char *[12]' 分配给类型 'int' 时的类型不兼容

c - 如果 malloc 失败了怎么办?