C ++中的警告和错误消息

C / C ++编程语言在世界上非常流行且使用最广泛的编程语言,编写程序和执行非常容易,但是有时,在编译或执行程序时,我们会收到一些消息(警告/错误),而程序却无法编译/执行成功。

在这里,我们正在讨论一些常见的警告/错误消息:

  1. 空指针分配

  2. 不可移植的指针转换

  3. 可疑指针转换

1)空指针分配

这是运行时错误。它可能由于某些原因而发生,主要原因之一是“空指针分配,通常在指针具有NULL值并显示错误时发生,当我们访问此类指针或非法内存位置时(分配给操作系统或其他进程。)。

NULL的值为0,它是一个宏。在访问NULL分配的指针时,这意味着我们正在尝试访问内存的0位置。而且,由于将0地址用于操作相关进程,因此将产生错误。程序/用户不允许访问。

2)不可移植的指针转换

这是一种警告,当我们尝试不使用罢工(*)字符(用于取消引用指针)而访问指针变量时,就会发生这种警告。

当我们在非指针上下文中使用指针时,它是合法的但不可移植。此类代码可能有效,但在任何阶段都可能失败。

3)可疑指针转换

这是一种警告,当我们尝试在不同类型的指针中分配不同类型的变量的地址时发生。我们可以说变量的类型(将地址分配给指针的类型)和指针的类型是否不同

看程序:

#include <stdio.h>

int main(){
	float *ptr1, val=3.14;
	char *ptr2;

	ptr1 = &val;
	ptr2 = &val;

	return 0;
}

上面的程序在编译后会生成警告可疑指针转换。因为我们正在尝试存储val的地址,所以它浮在字符指针中。