取消引用未知的内存位置:C程序员大多使用scanf()函数来获取输入,但是有时一个小错误可能会带来错误,甚至使整个程序崩溃。
scanf()的语法为scanf(“%d”,&a);。。有可能错过与和写入&A作为所以现在的scanf(“%d”,一); 正在取消引用到未知位置。
现在,该程序可能会异常终止,或者可能对应于有效位置(与当前程序无关,但与某些其他程序无关),并且可能被覆盖,这可能在以后导致未知效果。
#include int main() { int a; scanf("%d", a); printf("%d", a); return 0; }
读取未初始化的内存。在C语言中,初学者通常使用malloc()提供运行时内存,但是使用malloc()时,不会初始化内存块,因此可以访问。
#include int main() { int* p = (int*)malloc(sizeof(int) * 4); int i; for (i = 0; i < 4; i++) p[i] += 100; }
一种解决