c***s 发帖数: 192 | 1 下一个地址是指下一个int的内存地址。
int *p = (int *)0x1000 ==> p + 1 = 0x1004
char *p = (char *)0x1000 ==> p + 1 = 0x1001 |
|
m*********a 发帖数: 3299 | 2 node dummy(0);
node *ptr
node * &curr=ptr;
其实是node *是个数据类型(ptr的数据类型),curr是ptr的另一个名字(&curr=ptr),
ptr和curr的内存地址一样。
这和
int x;
int &y=x;是一样的,y是int这个数据类型(x的数据类型),y是x的另一个名字(&y=x)
,地址一样。 |
|
|
e*i 发帖数: 10288 | 4 同意。MSI sucks.
以前有一块MSI的 LGA775主板,搬家以后板载网卡莫名其妙坏了。只好花钱
RMA回去修,修了后,1000M的主板,显示还是1000M,速度却最高只有100M了,
网卡地址也成了12-34-56-78-90之类的。 :P (我知道地址是可以自己改的)
后来,同一块板子,电容又爆了,此时已经out of warranty,只好自己焊接
移除。修好后扔在一边做backup了。 |
|
m*********t 发帖数: 399 | 5 我猜想你的程序是用到了网络通讯收发package并且定义了 #pragma pack 1 的数据结
构。
Segment Fault 基本上都是因为你访问了非4-byte align的内存地址。
检查代码里有没有 #pragma pack 1 的数据结构定义,并且把某成员地址强行 cast 到
一个 int 指针。 |
|
z****n 发帖数: 1933 | 6 给定一个内存地址,此工具可以告诉你哪一个进程改写了这个地址?
谢谢 |
|
b********n 发帖数: 609 | 7 第二个function是return value,就是先使用然后local variable才被处理掉了。而第
一个你是想返回local variable的地址,然后通过地址找值,当然不行。
就好比一张纸上写个数字,先给你看一眼再撕掉当然可以。可如果先撕纸你还能看么? |
|
c***d 发帖数: 996 | 8 ☆─────────────────────────────────────☆
emerson (艾默生) 于 (Wed Apr 25 12:55:00 2007) 提到:
假设已有一个函数,已知该函数内部有一个local static变量形如:
void func(...)
{
static int x;
x = bla bla...
}
但该函数没有任何形式返回x的值或地止
现在俺被要求搞一个main(), 反复调用上述函数,在每次调用完后,在main里
dig out那个static变量x的值,但不允许对函数func做任何修改。
俺觉在整个program运行过程中x在memory里有固定地址,
理论上这个要求应该办得到,但不知道怎么搞,急问俺该怎么办?
多多感谢各位好心人指点
☆─────────────────────────────────────☆
kukutf (五脚蟹★酷酷豆腐) 于 (Wed Apr 25 12:57:53 2007) 提到:
以前有game用的工具:gb4
可以追踪变化的内存地址
☆─────────────── |
|
x******g 发帖数: 41 | 9 void testAddressOf()
{
int a = 4;
int *b = &a;
int c = 5;
cout << "address of a: " << &a << endl;
cout << "address of &b " << &b << endl;
cout << "address of c: " << &c << endl;
}
三个地址分别是
0015F75C
0015F750
0015F744
整形不是4个字节么,为什么地址之间差距是0xC=12呢? |
|
w***g 发帖数: 5958 | 10 我说的不一定对啊。不过下面这个例子可以帮助你理解为什么优化会导致出错。比如有
两个变量
int a, b;
都在没有初始化的时候就用了。没有经过优化的话a和b用的是不同的内存地址,那么它
们在程序开始运行的时候会被自动初始化为0,程序能正常运行。根据C语言标准,没有
初始化的变量的值是没有定义的,但是有些情况下(如果变量在.bss section)操作系统
会自动用0来初始化这些变量。
如果程序里a的最后一次使用在b的第一次使用之前,那么编译器就会优化变量分配,使
得b和a用同一个地址。这时a和b其实已经是一个变量了。a在第一次使用的时候还是0,
但是b在第一次使用的时候往往就不是0了,于是程序就会出错。
变量没初始化这个错误非常常见,最典型的表现就是-O2下程序运行正确,-O3出错。而
且每次运行的行为都一样,没有随机性。 |
|
h*i 发帖数: 3446 | 11 所以IP语言是用计算机的实现特性来区分个体的,更接近机器,一般人不容易理解,因
为不懂什么内存地址啥的。
FP对个体的区分与人是一样的,用属性,而不是机器地址。
★ 发自iPhone App: ChineseWeb 8.7
★ 发自iPhone App: ChineseWeb 8.7 |
|
s***n 发帖数: 5 | 12 如何用“ld”把不同的函数起始地址恰好设为页面的开始
即生成的可执行文件是这样的:
每个函数在内存的摆放位置的起始点都是某个页面的起始点.
如果ld不能完成此项任务,我应该怎么做? |
|
n*******4 发帖数: 2285 | 13 我认为当前数学的主要困境就是对我们这个时代要解决的重大问题显得束手无策, 老
办法不灵了!什么重大问题? 那就是复杂性(Complexity)的问题。你看过去三五十
年什么领域取得巨大进步?在技术领域是IT,在自然科学领域是细胞分子生物学,在这
两个领域传统数学都没能提供什么有力的理论工具支持。而这两个领域都涉及复杂性的
系统。
传统数学思维模式是抽象,抓共性,比如微积分就最明显,取介质中任何一小质量块建
模,从它和周边环境作用关系得出微分方程,从边界条件求解微分方程。微分方程是灵
魂,它是适用于任意小质量块的一种关系,是一种抽象。可这在计算机里就完全不适用
!你取计算机里任意一个内存地址里的内容,建立不了什么有用的普适关系--也即微分
方程,能建立的普适关系对计算机的功能都是次要的,重要的恰恰是各自特殊的状态。
传统数学思维模式的抽象模式是忽略各个单元的个性,个性是有害的,目的是找共性。
而复杂性的系统功能的实现最重要的就是各个单元的个性状态的集合。细胞分子生物学
里也极大地体现以上特点,就是系统的高度信息性, 没法建微分方程。传统数学研究
的主要不是信息(各个单元高度异化的个性),... 阅读全帖 |
|
C**********e 发帖数: 23303 | 14 这个操作也不需要有源代码 也不需要懂其中的二进制代码
只要找到关键内存地址 修改锁定其中的值即可
是不是和这次的基因编辑人很相似? |
|
r********t 发帖数: 1098 | 15 感谢很多朋友的热情来信
请你们肆无忌惮地下蛋
拿到现货以后,
尽快做rebate,并且保留所有相关的rebate材料
当你的货ready to ship to me的时候
请和我联系,我付款,并且通知你邮寄地址。
谢谢 |
|
B*******g 发帖数: 1593 | 16 运气好 问到的都是很简单的问题 C++ STL...
1. 4 default functions in C++
2. For non built-in type, how to prevent client from passing by value
3. Program crashed, what u do?(I said fault handlers with stack trace,log
files blahblah)
4. STL vector what happens when insert() push_back() pop_back()are called.
我答的很笼统 主要就是注意到memory reallocation还有将所有元素移到新的内存地址
的问题 顺便
问到了vector里面是user defined type时要定义copy constructor 以及shallow deep
copy
5. set 和 hash_map的区别 我没讲全 他也没追问细节
6. file with strings, use STL containers to fin |
|
W****r 发帖数: 835 | 17 感觉除了能精简指令集之外,没有太大意义。
http://en.wikipedia.org/wiki/Addressing_mode#Memory-mapped_registers
Memory-mapped registers
On some computers, the registers were regarded as occupying the first 8 or
16 words of memory (e.g. ICL 1900, DEC PDP-10). This meant that there was no
need for a separate "Add register to register" instruction — you could
just use the "add memory to register" instruction.
In the case of early models of the PDP-10, which did not have any cache
memory, you could actually load a tight ... 阅读全帖 |
|
m*****g 发帖数: 226 | 18 原话的问题基本是不懂computer architecture的。
就算embedded也是从通用体系来的,区别不会太大。 |
|
D*********y 发帖数: 876 | 19 昨天刚面了一个小公司,onsite
做web server的
面试题如下,希望对大家有帮助
每个面试官都先给张卷子,做题,一个面试官出一张卷子
比如int a = 1/2.0,输出啥
*c++ = *d++的结果
const的各种位置代表什么之类
然后考概念,能记得的有:
基本的data structure,insert/sort/delete的复杂度
hashtable和BST的区别
C++ constructor和desctructor是怎么实现的,new是否可被重载
new的东西放在哪里,new/delete和malloc/free的区别
delete和delete[]的区别
polymorphism里面,new derived用的constructor的顺序;delete derived的
destructor顺序
new和delete的顺序有什么关联(reverse order)
design pattern: singleton,factory, MVC
用过的C++编译器,WINDOWS下的和LINUX下的
multi-thread: semaphore, mutex, ... 阅读全帖 |
|
y**********u 发帖数: 6366 | 20 我真看不出他这样多用一个指针,最多分配一个寄存器变量和内存地址的
和面试官无数次recursion, 建立activation record,保存当前的局部变量,跳转
activation record有什么劣势
这样的面试官估计就是找艹
了吗
才对 |
|
i*********7 发帖数: 348 | 21 大哥我错了,原来好像是mutable的。。
我试了一下这两段代码
string a("abc");
cout<<&a<
a = a + "bsdadsadasdasdc";
cout<<&a;
发现输出来的内存地址是一样的。 |
|
f*********m 发帖数: 726 | 22 我想是说从文件里随机采样100个数。
若是能把文件中的每个数的所在的内存地址估计出来,那么也许能用到答案所说的方法? |
|
l*y 发帖数: 21010 | 23 我知道呀,可是p不是一个指针吗,p+1应该等于一个内存地址呀 |
|
y****1 发帖数: 58 | 24 有个疑惑。 谁能解释一下啊? 谢谢
void initChunk(void * addr, size_t size)
中的 addr 有什么用啊? 是通过malloc返回的地址吗?
谢谢 |
|
r*******e 发帖数: 7583 | 25 这类大数据题,基本思路就是binning
根据ip的数字分到不同的bin,对每一个bin找前100
然后merge
bin的大小根据内存大小来定 |
|
s********r 发帖数: 403 | 26 这些最基本的大家都知道。
那个使用非静态成员函数的本质就是 cast 了一个内存地址, not complicated,
so what? |
|
s********r 发帖数: 403 | 27 基本上是这个意思,
CAS 返回本内存地址的 old value, 如果是 NULL,证明当前thread 操作得手
这个是个 atomic, 没有条件判断的先后
node |
|
z*****g 发帖数: 2 | 28 char array的hash code是内存地址。。。 |
|
s********u 发帖数: 1109 | 29 我跑了下,崩溃了。
我的理解是,因为你指针指向一个常数而不是变量,所以这个很不稳定啊。很有可能比
如这块内存地址没有保留,等下再访问就访问不到了。
据我所知,只有char* 和const char*是可以直接赋literal的,但在传递参数的过程中
也会经常出现问题,所以还是char pstring[] = “sss”稳妥,不过如果用malloc分配
之后怎么赋初值我忘了。还是oop语言方便。 |
|
r****s 发帖数: 1025 | 30 request来来往往的,不能用内存地址。
用64位MD5差不多了。 |
|
l*********o 发帖数: 736 | 31 具体看什么类型的hash table, 影响hash function实现
hash归根结底要把key和一个integer对应起来,这样才能直接找到内存地址 |
|
f******s 发帖数: 3849 | 32 去atm上存到你自己账户,或者寄给他。 让他自己在国内存。 |
|
|
|
w****r 发帖数: 15252 | 35 32位系统是32个bit 可以代表2的32次方个寻址空间
也就是可以表示4294967296个地址=4194304K=4096M=4G
32bit系统刚好支持最大4G寻址空间
先不说你学没有学过计算机
就是数学计算你们也不及格啊 |
|
|
T****O 发帖数: 407 | 37 如果你的CPU支持物理地址扩展,Windows XP后的32位操作系统可以识别3.5GB以上,常
见的应用是用来做虚盘。 |
|
x****o 发帖数: 21566 | 38 生活总是有很多出人意料的事情,比如,你以为我要举个例子。
网友求最美英文,翻译她最喜欢的一句话:“有生之年,欣喜相逢。” 一开始,网友
翻的句子是这样的 ;“have life of year, happy to see you” 或 “Wake me up
,when my life ends”。有神人大显身手,翻译道:nice to meet you!
使用哇嘎下载毛片,输入了一个关键字KAO,然后就挑了一个下载,打开一看,傻了,
考拉吃树叶子。。
看了N多电影,终于明白电影咋分级的。普通级:好男人得到女主角;辅导级:坏男人
得到女主角;限制级:人人都得到女主角。
年轻人,要趁有活力的时候多出去走走,去旅游,多看一看外面的世界,不要局限在当
地,走出去你才会发现,世界很大!所以说东城的要多去西城,丰台的也要多去劲松,
海淀的要去昌平看看,是不是这个道理?走出去!
老婆不在,我哄女儿睡觉,发现她睡着了,于是我坐在被窝里打开笔记本电脑看动作片,
我太入神不知什么时候女儿醒了侧过来看我的电脑,我一惊,马上把电脑移到床下,结
果女儿不答应,跟我说:爸爸,我要看那个吸手指的
小明有心理阴影,... 阅读全帖 |
|
w**********5 发帖数: 1741 | 39 如果孔子当了码工,那么他一定会发明一种新的程序设计语言,这门语言庄重典雅,格
式规范。他会告诉你越早的程序设计语言才是越好的。他会培养众多的弟子,但因为大
公司没有一个愿意使用这门语言,他只能带着诸多弟子颠沛流离,以干咨询为生。
如果老子当了码工,那么他一定会设计一种非常宽松的程序设计语言,你甚至不需要声
明一个变量,因为你根本不可能准确地定义什么是变量。这门语言非常奥妙,对于懂的
人来说,它是那么地神奇,可以解决天下任何问题,而对于不懂的人来说,它简直就是
一堆乱码。
如果韩非子当了码工,那么他一定会设计一种非常严格的程序设计语言,不光要声明变
量的名称和类型,还要声明它的内存地址、生存周期、与哪些其他变量互相作用。
如果庄子当了码工,那么他一定不屑于在任何一家公司里工作,而是自己躲在一个地方
写自己最喜欢写的代码。他的这种思想深深地影响了后来一个叫陶渊明的码工,后者曾
经在某篇博客中描绘了一个所有程序都没有Bug、码工和PM和平相处的美好世界。
如果商鞅当了码工,那么他一定会在哪个变量运行出错时把所有与它相关的变量全部删
掉。
如果秦始皇当了码工,那么他一定是那个将公司发展壮大、吞... 阅读全帖 |
|
d***a 发帖数: 13752 | 40 这一篇是在瞎吹。1990年时,用多处理器的服务器很常见,比较有名的公司是IBM,
Sun,SGI。那时大型机器可以有几百上千个CPU,共享内存地址空间。 |
|
z*****n 发帖数: 7639 | 41 设置compiler参数,保证其他变量的地址分配不在
你的堆上。 |
|
a****l 发帖数: 8211 | 42 既然你已经知道是embedded processor了,那么原因你自然也该想的八九不离十了. |
|
|
z*****n 发帖数: 7639 | 44 你明确声明的变量都不会冲突。
除非那编译器也是你自己写的。 |
|
|
|
b*******t 发帖数: 79 | 47 变量是函数的变量还是全局的呢
函数的变量放在stack,有可能stack overflow. 你最好debug跟踪下
GCC和VC8在stack放了canary word(VC编译的/GS选项) |
|
c**b 发帖数: 2999 | 48 memory overflow.
比如一个int型变量值太大. |
|
|