-
其实,如果自己编写删除函数,首先要判断值是否有效;
否则,像 delete 这样的功能就是一个系统功能,因为用户的错误,很难折叠整个系统。
-
在 C++ 中重复删除指针是安全的,Delete 将确定已删除的指针是否为百搭指针。
-
当指针变量定义时,将定义无空指针
通配指针是指指针在使用后未设置为 null 的指针
在这两种情况下,这并不危险,但危险在于您的使用初衷与您表达的意思相反。
如果做以上两句话,那么每次使用指针时,只需要判断指针是否为空,就知道它是否是合法的指针。
非法指针自然会导致程序崩溃或隐藏危险,如果它们崩溃,那么你必须感谢上帝,如果他们隐藏了危险,就相当于你的程序得了精神病,把你逼疯了。
-
指针悬空后,如果一直丢弃,除了无缘无故占用一些内存外,不会有其他不良影响。
但是,一旦程序调用了指向未知数的指针,并执行了写入操作,这是危险的。
如果指针指向系统的核心进程,则该进程可能会导致意外的写入操作,并导致可能导致系统崩溃的异常,更可怕的是,如果指针指向硬件驱动程序,例如打印机、内存、CPU 调度或温度控制。
结果是硬件的破坏。
-
当指针变为 null 时,它不会指向特定的内存,如果要通过此指针访问内存,系统将找不到它应该拥有的内存,并且会崩溃。
-
房东,你是字段指针有问题,如果想释放指针打开的空间,可以使用free(point)释放,然后point=null,也就是房东说指针挂了,这样系统就不会有问题了!
-
这通常意味着,如果声明了一个指针,但未初始化并为其赋值,则该指针是垃圾值。
通常会出现问题,因为您不知道该值指向哪一段内存,并且该内存不属于您的程序。
-
指针指向另一个程序使用的内存并修改数据,从而导致异常。
-
相当于你不经过任何申请手续就占用了不属于你的土地,属于违法......
-
最后一句话,printf("%s",b);就是这样。
因为 b 是一个字符串指针。
-
如果你在程序中犯了错误,最终的 printf 不应该是 *b,直接写 b,b 是指针,printf 将从指针开始的地方输出。 如果写 *b,则为段错误,无法运行
-
带尖括号的<>
输出 b 未取消引用。
-
一定不能用,指针变量存储一个内存地址,内存被释放,如果引用指针,肯定会发生内存错误,这肯定是没有意义的。 如果要再次使用它,可以为指针变量请求一段内存。
-
通配指针是使用指针时的常见错误,通常,编译器将无法检测到在此运行时引起的错误。 这种错误只能由程序员自己来困扰。
有些编译器可能会提供检查机制,但我相信要找出这种复杂情况导致的 wild pointer 问题并不容易,最好的解决方案是从程序员的源头解决。
程序是崩溃还是输出垃圾值是随机生成的,因为是场指针,也就是只指向内存的地质是不确定的,碰巧指向无法访问的内存自然会崩溃,碰巧指向可访问的内存也没关系。
决定这一点的不仅仅是编译器,还有系统环境。 由于它是随机的,因此深入研究这一点没有多大意义。
-
应该是错误,j没有初始化,p表示过去是未知地址,如果这个地址的内容有问题,那么当*p输出时,程序肯定会失败。
我试过了,程序挂断了,没有输出。
这可能与编译器有关,也可能是这个j的地址内容特殊。
-
我身下出了点问题
-
在第一个for循环结束后,i=10,那么你的*(p+i)等价于*(p+10),你对p的赋值是p=a,a是数组的第一个地址,所以你的第一个*(p+10)实际上是*(a+10),数组大小是10,已经越界了,所以打印的值是错误的, 并且打印的自动增长循环一定是错误的。
朋友,请【领养答案】,你的领养是我回答问题的动力,如果你不明白,请问。 谢谢。
-
将上一个 printf 中的 *(p+i) 更改为 *p,然后重试。
-
在上图中,在开合的瞬间,V1和V2绕组的电流增加,方向是从V2到V1,使磁场增大,V1和V2绕组自感电动势产生的磁场应抵消原磁场的变化, 即自感电动势产生的电流方向与原电流方向相反,自感电动势的电流方向从V1到V2,自感电动势的电流在W1和W2绕组中产生互感电动势,其方向为W2正W1负, 在上面的接线图中,电流表指针是正确的偏置。
-
您可能理解,C++ 中允许指向 null 的指针,但它们必须与 new 和 delete 结合使用才能导致通配指针或垃圾邮件。 请记住:在新指针之后,使用完后使用 delete 将其删除。
是的,您指的是家庭或企业路由器吗?
家庭用词,如宽带路由器很容易。 只需设置即可。 当你进入时,你可以看到一个登录框,一般原始密码是:admin。 >>>More
劳动价值论是认为价值是浓缩在商品中的无差别的人类劳动,即抽象劳动被创造出来的理论。 商品的价值是由商品所体现和实现的社会必要劳动所决定的理论,是人们在漫长的历史时期中逐渐认识到的。 劳动决定价值的观点最早是由英国经济学家佩蒂提出的。 >>>More