标签: memory-address

来自HEX字母的单词

我正在寻找可以用十六进制字母创建的单词,[0-9a-f]+ 比如C0FFEE, DEFACED
我们也可以使用lisoz,1=l,i; 5=s; 2=z; 0=o等等.
它可以用于内存寻址或IPv6地址,因此它会很有趣,也更容易记住.

这里有很好的列表:http://www.nsftools.com/tips/HexWords.htm 但我相信我们可以想出一些不存在的东西或发明新词:)

hex naming memory-address

3
推荐指数
1
解决办法
3527
查看次数

什么时候2个虚拟地址可以映射到同一个物理地址?

这里是操作系统/计算机架构的问题.我正在阅读有关缓存的内容,关于如何虚拟索引缓存是减少地址转换时间的选项.我遇到了以下情况:

"Virtual cache difficulties include:
    Aliasing
        Two different virtual addresses may have the same physical address."
Run Code Online (Sandbox Code Playgroud)

当这种情况发生时我无法想到这种情况.我的O/S天已经有一段时间了,我正在画一个空白.

有人能提供一个例子吗?谢谢

operating-system cpu-architecture memory-address

3
推荐指数
1
解决办法
3615
查看次数

在C中找出地址

我正在尝试学习如何在C中找出地址.对于下面的代码,假设它是在32位小端机器上编译的.

struct {
    int n;
    char c;
} A[10][10];
Run Code Online (Sandbox Code Playgroud)

假设A [0] [0]的地址是1000(十进制),A [3] [7]的地址是什么?任何帮助表示赞赏!

c multidimensional-array memory-address

3
推荐指数
1
解决办法
122
查看次数

现代操作系统上最低的内存地址

我最近被指向了我的一个C程序,如果内存块的起始地址足够低,我的一个测试会因为绕零而失败,导致崩溃.

起初我认为"这是一个讨厌的潜在错误",但是,我想知道:这种情况会发生吗?我从来没有见过这个.公平地说,这个程序已经在无数系统上运行了数百万次,到目前为止它从未发生过.

因此,我的问题是:调用malloc()可能返回的最低内存地址是多少?据我所知,我从未见过像0x00000032这样的地址.

我只对"现代"环境感兴趣,例如Linux,BSD和Windows.此代码不适用于C64或任何业余爱好/研究操作系统.

c memory malloc memory-address

3
推荐指数
1
解决办法
392
查看次数

字符类型变量的地址

这只是一个测试原型:

#include <iostream>
#include <string>
using namespace std;

int main()
{
   int a=10;
   char b='H';
   string c="Hamza";

   cout<<"The value of a is : "<<a<<endl;
   cout<<"The value of b is : "<<b<<endl;
   cout<<"The value of c is : "<<c<<endl<<endl;

   cout<<"address of a : "<<&a<<endl;
   cout<<"address of b : "<<&b<<endl;
   cout<<"address of c : "<<&c<<endl;

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么变量'b'的地址是字符类型,而不是打印?

c++ character memory-address

3
推荐指数
1
解决办法
84
查看次数

ASLR 和地址

看看这个主要:

int 
main() 
{
  int asd = 10;
  printf("%p\n", &asd);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

特定时刻 asd 的地址:

0x7ffff5f7c16c
Run Code Online (Sandbox Code Playgroud)

主要地址(始终相同):

(gdb) disass main
Dump of assembler code for function main:
    0x00000000004005b4 <+0>:    push   %rbp
Run Code Online (Sandbox Code Playgroud)

为什么常规 c 程序的变量地址在每次执行时都会改变,而程序本身的起始地址总是相同的(假设它不是位置无关的)?我看到地址可变是由于ASLR模式,但为什么它只影响程序变量,而不影响代码分配的位置?这是否与作为代码部分 ro 在不是绝对必要的情况下随机化它没有意义的事实有关?

另外,为什么main的起始地址和变量asd的地址之间存在巨大的差距?

linux debugging assembly gcc memory-address

3
推荐指数
1
解决办法
362
查看次数

为什么不能一步读取未对齐的单词?

鉴于 CPU 的字长允许它寻址内存中的每个字节。
鉴于通过PAE CPU 甚至可以使用比其字长更多的位进行寻址。

CPU无法一步读取未对齐的字是什么原因?

例如,在 32 位机器中,您可以读取从位置 0 开始的 4 字节块,但不能读取从位置 1 开始的块(可以,但需要几个步骤)。
为什么CPU不能这样做?

hardware cpu-architecture memory-alignment memory-address address-bus

3
推荐指数
1
解决办法
310
查看次数

restrict关键字对唯一指针类型的参数没有意义吗?

我注意到restrict在我们的一个遗留项目中大量使用了关键字.
我理解其基本原理restrict,但在应用于其中一些功能时,我质疑其有用性.

请看以下两个例子:

void funcA(int *restrict i){
    // ...
}

void funcB(int *restrict i, float *restrict f){
    // ...
}

int main(){

    int i = 1;
    float f = 3.14;

    funcA(&i);
    funcB(&i,&f);
}
Run Code Online (Sandbox Code Playgroud)

有一个可能标记的参数的任何正当理由funcA,并funcBrestrict

funcA只需要1个参数.它怎么能和其他地址一样?

funcB采用不同类型的参数.如果它们是相同的地址,那么这不会破坏严格的别名规则吗?

c parameter-passing restrict strict-aliasing memory-address

3
推荐指数
1
解决办法
234
查看次数

局部变量保存相同的内存地址

以下程序打印两个不同变量的地址.

#include <iostream>
using namespace std;

void f1()
{
    int i,k;
    cout<<"f1 : "<<&i<<endl;
}

void f2()
{
    int j;
    cout<<"f2 : "<<&j<<endl;
}

int main() {
    f1();
    f2();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现场演示

当我在GCC上运行这个程序时,我想知道,两个变量都有相同的地址.

为什么两个变量都保持地址相同?

编辑:

void f1()
{
    int i = 10;
    cout<<"f1 : "<<&i<<endl;
    cout<<"value of  : "<<i<<endl;
}

void f2()
{
    int j;
    cout<<"f2 : "<<&j<<endl;
    cout<<"value of j : "<<j<<endl;
}

int main() {
    f1();
    f2();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现场演示2

在这个例子中,如果我分配值10i然后j …

c++ variables memory-address

3
推荐指数
1
解决办法
566
查看次数

如何从Python中的指针地址读取?

我想在 Python 脚本中读取从特定地址开始的多个字节。例如,我想从 0x561124456 开始读取 40000 个字节。

指针来自 C# 应用程序。我想使用这种方法在应用程序和脚本之间传递数据。我已经通过 localhost 使用了 TCP 套接字,但我也想尝试这种方法。

我怎样才能做到这一点?

python memory memory-address

3
推荐指数
1
解决办法
7551
查看次数