- 下面的程序会发生崩溃:
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include <stdio.h> #include <iostream> using namespace std; int main(void) { int *p; int i = 5; *p = i; printf("%dn", *p); return 0; }
- 原因如下:
- 变量的本质是内存中分配一段存储空间
- p由于没有指向,因此内部是个垃圾值,使用*p很可能访问了并没有给程序分配的存储空间
- 解决方法:提示:有2种
指针指向静态内存 指针指向动态内存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <iostream> using namespace std; int main(void) { int *p; int i = 5; p = &i; printf("%dn", *p); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <iostream> using namespace std; int main(void) { int *p = new int; int i = 5; *p = i; printf("%dn", *p); return 0; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/611615.html