32为Linux主机下的C语言内存情况

-----------------------------------------------------------          4G(0xffff ffff)

内核空间              应用程序不许访问

------------------------------------------------------------         0xC000 0000

栈空间                 RW           局部变量保存位置

-------------------------------------------------------------

运行时堆空间                           malloc

--------------------------------------------------------------

全局的数据空间     RW     (初始化的(data)、未初始化的(bss))     data    bss

代码段(只读)           R                code                                text

---------------------------------------------------------------0x0804 8000
---------------------

堆栈区内存大小,缺省值 2M或者4M,如果char够用,你就按照char去开,就只有int的1/4啦

当然我们开全局变量和malloc也是能用的,因为被OS接管了,所以acmer经常爆栈

printf("%s",s[i])不能运行

case 's':
s = va_arg(args, char *);
if (!s) s = "<NULL>";
len = strnlen(s, precision);
if (!(flags & LEFT)) while (len < field_width--) *str++ = ' ';
for (i = ; i < len; ++i) *str++ = *s++;
while (len < field_width--) *str++ = ' ';

给定字符就会访问字符所在ascii值得内存空间,就炸了

导致程序运行崩溃有以下几种可能:非法内存地址访问,访问越界,堆栈溢出

堆栈,函数调用时入栈的顺序 是参数 函数地址 局部变量

拉链法和开放定址比较

拉链法:处理冲突简单,无堆聚现象,同时链表插入、删除操作简单,所以拉链法适合经常进行插入、删除操作的情况。

开放定址法:为了减少冲突,要求负载因子(装填因子)较小,当节点规模较大时候会浪费很多空间。且开放定址法在删除节点的时候,不能简单的将节点所在的空间置为空,否则将截断在它之后的节点的查找路径,这是因为各种开放定址法中,空地址单元都是查找失败的条件。因此在进行删除节点操作的时候,需要使用逻辑删除,即在被删除的节点上做删除标记。

C语言遇到的小问题的更多相关文章

  1. 基于php基础语言编写的小程序之计算器

    基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...

  2. 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介

    [源码下载] 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介 作者:webabcd 介绍不可或缺 Windows Native 之 ...

  3. Python语言防坑小技巧

    Python语言防坑小技巧 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.赋值即定义  1>.运行以下代码会出现报错 #!/usr/bin/env python #_*_ ...

  4. 简单的C语言猜数字小游戏

    猜数字小游戏可谓是C语言最为基础的一个知识点了,我们可以在此基础上进行延伸,实现随机数的猜测,然后是加入再来一局的模式,等等.这里是抛砖引玉,希望你能做出你的经典之作. #include <st ...

  5. R语言(入门小练习篇)

    问题: 一组学生参加了数学.科学和英语考试.为了给所有的学生确定一个单一的成绩衡量指标,需要将这些科目的成绩组合起来.另外,还想将前20%的学生评定为A,接下来20%的学生评定为B,以此类推.最后,希 ...

  6. 基于go语言结合微信小程序开发的微商城系统

    最近在慕课网上录制了一门<Golang微信小程序微商城系统原型>,这门免费课程特别适合在校大学生或者刚毕业的大学生,go语言初学者以及想要从事微商城开发项目入门的小伙伴们来学习.在课程当中 ...

  7. 关于C语言数组的小练习--笔记

    #include <stdio.h> #include <windows.h> #include <mmsystem.h> #include <string. ...

  8. 【C语言程序设计】小游戏之俄罗斯方块(一)!适合初学者上手、练手!

    俄罗斯方块的核心玩法非常简单,所以制作起来并不是很复杂,我准备先用2篇文字的篇幅详细讲解一下俄罗斯方块的制作方法. 今天咱们算是第一篇,主要讲解俄罗斯方块中如何定义方块,以及如何实现方块的移动.旋转. ...

  9. 【C语言程序设计】小游戏之俄罗斯方块(二)!适合初学者上手、练手!

    第二篇,主要实现俄罗斯方块中的主体部分,包括容器的数据结构以及容器的相关操作,特别是大方块和容器之间的交互逻辑,包括碰撞检测,消除检测等等. 1. 容器的表示 大方块的实现涉及到位运算,而容器同样如此 ...

随机推荐

  1. 如何处理VirtualBox启动错误消息:The vboxdrv kernel module is not loaded

    我在启动minikube时,遇到如下错误消息: Starting local Kubernetes v1.10.0 cluster... Starting VM... E1010 03:27:37.9 ...

  2. 使用tensorflow object_detection API训练自己的数据遇到的问题及解决方法

    1.Windows下出现找不到object_detection包的问题. 解决方法 在Anaconda3\soft\Lib\site-packages新建一个pth文件,将PedestrianDete ...

  3. 程序员的智囊库系列之2----网站框架(framework)

    程序员的智囊库系列之2--网站框架(framework) 这是程序员的智囊库系列的第二篇文章.上一篇文章讲了服务器与运维相关的工具,这篇文章我们将介绍几个搭建网站的框架: django express ...

  4. springboot 测试

    本次测试使用的是springboot 中的测试 1.(对service 的测试)下面的测试.将会启动容器进行测试 @RunWith(SpringRunner.class) @SpringBootTes ...

  5. Vue中使用computed与watch结合实现数据变化监听

    目的:当数据变化时,为其中重要数据增加边框,实现闪烁以达到提醒目的.数据格式如下,只有在未处理火警/故障时增加闪烁边框.可以使用watch进行深度监听.数据格式已定,也非常明确要监听的数据是有两个.既 ...

  6. python_105_类的特殊成员方法

    aa.py class C(): def __init__(self): self.name='QiZhiguang' 类的特殊成员方法: # 1. __doc__ 表示类的描述信息 class Do ...

  7. JsonPath 语法 与 XPath 对比

    JsonPath 语法 与 XPath 对比   XPath JSONPath Description / $ the root object/element . @ the current obje ...

  8. 安装 Win7 的系统的时候如何分区

    解决方案 在安装Win7的系统的时候,可以使用下面方法进行分区: 1. 在出现同意许可条款,勾选“我接受许可条款(A)”后,点击下一步,然后继续下面操作: 2. 进入分区界面,点击“驱动器选项(高级) ...

  9. MySql下最好用的数据库管理工具是哪个

    MySql下最好用的数据库管理工具是哪个? 维基上有个很全的列表: https://en.wikipedia.org/wiki/Comparison_of_database_tools   1. ph ...

  10. java中异常处理机制 throw抛出自定义业务逻辑异常 throws继续抛出 catch捕获后会自动继续抛向调用方法

    package com.swift; public class Exception_TestC { public static void main(String[] args) { /* * 第5题: ...