c语言之内存扫描

简介:

曾经很早的时候学习C语言基础的时候就想过,既然c语言可以不限制指针的使用,那我用一个指针写一个死循环不就可以扫描整个内存了。。。但是显然这个结论是错误的


#include<stdio.h>

 char a;
 char *p=&a;

int main()
{
// 	char a;
// 	char *p=&a;
	int count=0;
	while(1)
	{
		printf("%d   the location is == %o, num == %d\n",++count,p,*p);
		p++;
	}

	return 0;
}


原因我认为应该是c语言为每个函数分配了一个栈空间,如果超过了这个空间就会报错。如果把变量声明到main函数内部,指针指到1031行就报错了【也许不同的编译器和系统结果不同】,但是如果声明到main的外面,就可以指到16064行,这个结果也和上面的结论相一致。


相关文章
|
29天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
31 3
|
14天前
|
C语言
【c语言】动态内存管理
本文介绍了C语言中的动态内存管理,包括其必要性及相关的四个函数:`malloc`、``calloc``、`realloc`和`free`。`malloc`用于申请内存,`calloc`申请并初始化内存,`realloc`调整内存大小,`free`释放内存。文章还列举了常见的动态内存管理错误,如空指针解引用、越界访问、错误释放等,并提供了示例代码帮助理解。
26 3
|
30天前
|
编译器 程序员 C语言
深入C语言:动态内存管理魔法
深入C语言:动态内存管理魔法
|
1月前
|
存储 程序员 编译器
C语言——动态内存管理与内存操作函数
C语言——动态内存管理与内存操作函数
|
1月前
|
程序员 C语言
C语言内存函数精讲
C语言内存函数精讲
|
16天前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
15 0
|
25天前
|
C语言
保姆级教学 - C语言 之 动态内存管理
保姆级教学 - C语言 之 动态内存管理
16 0
|
30天前
|
存储 C语言
深入C语言内存:数据在内存中的存储
深入C语言内存:数据在内存中的存储
|
30天前
|
C语言 C++
c语言回顾-内存操作函数
c语言回顾-内存操作函数
39 0
|
1月前
|
存储 C语言 C++
来不及哀悼了,接下来上场的是C语言内存函数memcpy,memmove,memset,memcmp
本文详细介绍了C语言中的四个内存操作函数:memcpy用于无重叠复制,memmove处理重叠内存,memset用于填充特定值,memcmp用于内存区域比较。通过实例展示了它们的用法和注意事项。
62 0