c - Scanf 字符串并设置指针

标签 c pointers scanf

我想要 scanf 字符串并将指针设置为他。字符串输入每次都不同,因此我无法像 char input[20] 那样设置。到目前为止还没有成功。

int main(void) {
    char input;
    char *input_string = input;
    scanf("%s", &input_string);

    int i = 0; 
    while (input_string[i] != '\0') {
        printf('%d', input_string[i]);
        i++;
    }
}

最佳答案

在 POSIX 系统上,您可以使用 m 修饰符自动为字符串分配内存

char *input_string;
scanf("%ms", &input_string);

请注意,为了避免内存泄漏,您最终需要调用 free(input_string); 来释放分配的内存。

关于c - Scanf 字符串并设置指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55070072/

相关文章:

c++ - 用于为 C/C++/脚本代码着色的优秀 WordPress 扩展是什么?

c - IA-64 上的段错误,但 IA-32 上没有

c++ - 直接从指针/地址访问数组的元素

c - fscanf() 导致段错误

c - 将修改后的数组值传递回 C 中的主函数

c - 带有 C 语言开关的用户菜单 [包含代码]

c++ - 在被删除的对象内部动态分配对象会发生什么?

c - 与循环迭代相比的内存分配效率

c - 如何使用 fscanf 读取 c(Segmentation Fault) 中的文件?

c - scanf() 字符串的返回值