c - C中指针初始化概念

标签 c pointers initializing

为什么这是错误的?

char *p;   
*p='a';

书上只说-使用未初始化的指针。 请问谁能解释一下这是怎么回事吗?

最佳答案

是的,它可能会导致运行时错误,因为它是 undefined behavior 。指针变量已定义(但未正确初始化为有效的内存位置),但需要分配内存来设置值。

char *p;
p = malloc(sizeof(char));
*p = 'a';

malloc成功时它将起作用。请尝试一下。

关于c - C中指针初始化概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800196/

相关文章:

c++ - 初始化指向结构 C++ 的 const 指针

c - 在 C 中的单独函数中初始化指针

c - 在数组中使用 volatile 类型

c++ - 何时使用引用与指针

c++ - 结构初始化作为参数

c - 指向引用变量的结构元素的指针

c++ - 返回迭代器范围(主列表的子集)

c - 在 GTK 中为工具栏按钮设置不敏感状态图标

c - 计算机上字符表示的底层细节

C 指针、结构和 fwrite