小编Dan*_*Dan的帖子

指针和访问内存c.小心

还在学习更多C并且有点困惑.在我的引用中,我发现有关分配尚未初始化的指针的注意事项.他们继续举例说明.昨天从帮助我指点的人那里得到了很好的答案,这里:

优先级,括号,具有迭代数组函数的指针

在跟进时,我简要地询问了循环的最后一次迭代,并可能将指针指向一个不存在的位置(即因为我的引用警告它).所以我回去看了一下,发现了这个:

如果你有一个指针

int *pt;
Run Code Online (Sandbox Code Playgroud)

然后在不初始化的情况下使用它(即我认为这意味着没有声明*pt= &myVariable):

*pt = 606;
Run Code Online (Sandbox Code Playgroud)

你可能最终得到一个真正的糟糕的一天,取决于这个指针被分配给内存的位置.我遇到麻烦的部分是使用一串字符时这样的东西就可以了:

char *str = "Sometimes I feel like I'm going crazy.";
Run Code Online (Sandbox Code Playgroud)

引用所在的位置,"不要担心字符串在内存中的位置分配;它由编译器自动处理".所以没必要说初始化*str = &str[0];*str = str;.意思是,编译器是自动char str[n];在后台吗?

为什么处理方式不同?或者,我完全误解了吗?

c pointers

36
推荐指数
5
解决办法
1926
查看次数

标签 统计

c ×1

pointers ×1