c - 为什么执行这个基本程序会出错?

标签 c pointers char

不太明白,为什么这个程序执行会出错?

  int main()
  {
        char *b;
        *b='2';
        printf("%c",*b);
        return 0;
  }

最佳答案

就目前情况而言,b 未初始化,因此可能指向任何任意位置。当您说 *b =... 时,您正在尝试写入某个未指定的位置,这(取决于该位置是什么)通常会导致错误(例如段错误)。也许您打算将 b 声明为 char 而不是指向 1 的指针?

关于c - 为什么执行这个基本程序会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640665/

相关文章:

jsp - <c :if> not working for comparing characters

c - 尝试执行 shmat 时出现分配错误

C++ 指针和数据位置 : Data Always Being Placed at Same Memory Location

c - 将行解析为 ***char 时出现段错误

c++ - C++中的字符数组

c++ - 将 char* 传递给 pthread_read 函数

c - (C) 宏中包含 2 个参数的宏无法编译,但在功能上运行良好。我想知道为什么。谢谢

c - 从 C、Xcode 中的文件中读取整数

c - 在 C 中将 int 添加到 char 数组

c - 从指针访问结构体成员