computer memory
拜乔布斯
文章中提到的工具或者样本可以到我的资源页面查看。
展开
-
linux系统中main函数参数内存分布
linux系统中main函数参数内存分布原创 2017-12-31 19:52:16 · 758 阅读 · 0 评论 -
当把一个负数赋值给无符号数时在C、C++中会发生什么?
例一:#include <stdio.h>int main(){ unsigned long i=-1; //pthread_t if( -1==i ) printf("i=%ld\n",i); return 0;}输出结果:分析:1、在使用gcc时 -1==i 并没有给出警告,说明C++对语法要求更严格。2、i明明是无符号的,怎么打印出来是-1? 例二:#incl...原创 2017-05-25 14:12:58 · 4527 阅读 · 0 评论 -
计算机中有符号整数“循环”
大家都知道计算机中整数都是以补码形式存放的,正数的补码是它本身,负数的补码是数值位取反,再加1。计算机中int是4字节(16位二进制数),short是2字节(8位二进制数)。这里用5位二进制数做例子,方便说明原理:1、0一直加1直到加到15,在计算机中应该是0 0000,0 0001,0 0010, 0 0011,……,0 1110,0 11112、-15一直加1加到-1,在计算机中应该是1 00...原创 2017-06-10 15:46:17 · 1042 阅读 · 0 评论 -
注意strncpy的n
前几天写了一个传输文件的程序,发现传输文本可以,换成图片接受端不能正常显示。后来发现是发送端每次读取文件内容和send之间的处理不恰当,导致在发送含有字符串结束符0时,发送内容不完整。写个程序验证,代码如下:例一:strncpy#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include ...原创 2017-06-10 19:27:33 · 770 阅读 · 0 评论 -
网络字节序和本机字节序的思考
看下面一段程序:#include <stdio.h>#include <arpa/inet.h>int main(int argc, char* argv[]){ struct in_addr m; //2237180096 m.s_addr=0x8558a8c0; //133 88 168 192 printf("%u\n", m.s_addr ); p...原创 2017-12-01 17:44:44 · 944 阅读 · 0 评论 -
关于main函数形参内存布局
突发奇想,想测试一下main函数参数的内存分布,代码如下:#include <Windows.h>int _tmain(int argc, _TCHAR* argv[]){ int pNumArgs=0; LPTSTR lpCmdLine=NULL; LPWSTR* szArglist=NULL; lpCmdLine=GetCommandLineW(); szArgl...原创 2018-06-17 12:14:35 · 809 阅读 · 0 评论 -
CPU是大小端存储的决定因素
之前被面试C语言经常问到如何判断系统是大端存储还是小端存储,自己想尽各种办法,又在百度上查各种奇葩方法。最近发现大小端存储是由CPU本身架构决定的,不是由操作系统定的。像咱们平时使用的intel、AMD处理器都是小端存储(不知道人家有没有推出大端存储)。Windows系统CPU类型定义头文件位置(以我的电脑为例):C:\Program Files (x86)\Windows Kits\8.1\In...原创 2018-01-05 16:52:06 · 3284 阅读 · 1 评论 -
关于main函数的第二个参数
main函数的正规写法如下:int main(int argc,char *argv[], char *env[])argv是执行程序时传递的参数,参数之间用空格隔开。是一维的char *数组。如果我们要传递的一个参数中间有空格,可以使用双引号把带空格的参数引起来,在main函数的栈里面双引号被自动去掉。在程序中我们经常使用argv+下标运算符来使用传递进来的某一个字符串,比如argv[1]参数,...原创 2017-05-14 16:42:00 · 1467 阅读 · 0 评论 -
malloc能分配多大内存
《程序员自我修养》中的一段代码,贴出来看看效果原创 2017-04-07 18:02:41 · 4539 阅读 · 0 评论 -
”智能“感知电脑蓝屏
电脑使用过程中出现蓝屏,重启后某卫士智能感知到,如下图:就在仔细想,蓝屏的时候所有进程都被迫关闭了,某卫士是如何知道的?实际是蓝屏后操作系统会在C:\Windows\Minidump目录生.dmp文件,以蓝屏时间命名。具体如下图:总结:1、某卫士开机时检查C:\Windows\Minidump目录下是否有以最近时间命名的.dmp文件,有的话就显示出现蓝屏问题窗口2、在用...原创 2018-08-26 18:38:21 · 203 阅读 · 0 评论