小编Mat*_*att的帖子

地址重合(指针,C编程)

我有两个二维数组,我不知道为什么或如何,每个数组中的两个元素的地址重合.这是源代码:

#include <stdio.h>

int main()
{
    int i,j,m,n,o,p,*ptr;
    printf("Enter dimension of 1st matrix: ");
    scanf("%d * %d",&m,&n);
    printf("Enter dimension of 2nd matrix: ");
    scanf("%d * %d",&o,&p);
    int *a[m][n];
    int *b[o][p];
    if (n!=o) return 0;

    printf("\nEnter 1st matrix:\n");
    for (i=0;i<m;i++)
        for (j=0;j<n;j++)
        {   printf("%d   ",(a+i*(n-1)+i+j)); scanf("%d",(a+i*(n-1)+i+j));   }

    printf("\nEnter 2nd matrix:\n");
    for (i=0;i<o;i++)
        for (j=0;j<p;j++)
        {   printf("%d   ",(b+i*(p-1)+i+j)); scanf("%d",(b+i*(p-1)+i+j));   }

    /*Printing the matrices*/
    puts("");puts("");
    for (i=0;i<m;i++)
        {for (j=0;j<n;j++)
            {   ptr = (a+i*(n-1)+i+j);
                printf(" %d ",*ptr);    }   puts("");}puts("");
    for (i=0;i<o;i++)
        {for (j=0;j<p;j++)
            { …
Run Code Online (Sandbox Code Playgroud)

c pointers

2
推荐指数
1
解决办法
177
查看次数

如何获取数组元素的地址?

我想把一个元素地址放到控制台,但我遇到了麻烦.

cout << &text[0] << endl;

它似乎是输出它的vaule,我在这里做错了什么?

谢谢

c++ arrays element

2
推荐指数
1
解决办法
2444
查看次数

如何在python中交换2个对象的身份?

我有2个实例xy同一个类RBnode.有没有交换自己的身份,让所有参考的方式xy,反之亦然?

例如,

x = RBnode()
y = RBnode()
x.data = 1
y.data = 2
L = [x,y]

exchange_identity(x,y)
print x.data, y.data, (L[0] is y)

>>> 2 1 True
Run Code Online (Sandbox Code Playgroud)

实际上我正在构建红黑树的扩展.树的节点被实现为对象.在编写节点删除方法时,我需要交换两个节点,以便要删除的节点位于树的"底部".

首先,我尝试在两个节点中交换数据:

def remove_node(self, y):
    ''' remove node y from tree
    return (y.key,y.value) if successful'''
... ... ...

    # exchange y's data with that of its successor y.next 

    y.key = y.next.key
    y.value = y.next.value
Run Code Online (Sandbox Code Playgroud)

但后来remove_node调用时发生错误,调用函数持有对节点的引用x,这恰好是y.next.就像是

x …
Run Code Online (Sandbox Code Playgroud)

python identity object memory-address

2
推荐指数
1
解决办法
171
查看次数

取消引用指针-vs-&-operator

这两个任务是否相同,即完全相同的东西?

*pointer = object

pointer = &object
Run Code Online (Sandbox Code Playgroud)

,其中pointer是指向"对象实例"的指针.

或者这只对原始类型有意义.

c c++ pointers dereference

2
推荐指数
2
解决办法
4649
查看次数

C++引用,地址,指针

我看到一个看起来像这样的函数定义

ClassName::Read(myObjectClass &temp)
Run Code Online (Sandbox Code Playgroud)

我试着像这样称呼它:

myObjectClass *myObj;
ClassName::Read(&myObj);
Run Code Online (Sandbox Code Playgroud)

但这是不正确的.什么是正确的方式来称呼它?它需要是类型myObjectClass&

c++ reference object

2
推荐指数
2
解决办法
114
查看次数

按地址获取符号(表示二进制,iOS构建)

我有分配仪器的快照和有趣符号的地址:

这是截图

我想知道,这个地址在代码中.我有相应的dSYM文件.我试图使用atosym命令行工具,但它给了我错误的符号(与我的应用程序无关).

怎么弄?

PS:二进制文件是由XCode 4.3.2构建的,代码语言是C++,armv7架构,发布构建配置.

xcode symbolicate armv7 ios object-address

2
推荐指数
1
解决办法
3082
查看次数

在C/C++中取消引用char指针?

我正在使用DWARF和ELF信息的程序中工作.我使用名为Pin的工具迷上了另一个程序.我有来自"Y"程序中声明的全局变量的地址,我把它挂钩到我的Pin模块,我称之为"X".

我得到了一堆这些全局变量的地址.不幸的是,当我试图取消引用它们时,我遇到了麻烦.例如(现在我正在手动操作以查看它是否正在执行应该执行的操作):

char * limit, * address1;

for(address1 = (char *) 0x804A040, limit = address1 + bytesize; address1 < limit; address1++)
      cout <<  *(address1) << "\n";
Run Code Online (Sandbox Code Playgroud)

我应该得到存储在该地址中的变量,该变量是char *一个单词.在这种情况下,我是否必须取消引用两个指针?地址然后char *存储在那个地址?

当我想取消引用一个int变量时,这非常正常,但每当我尝试取消引用一个char指针或变量时,我得到的non-ASCII值......

c c++ pointers dereference variable-address

2
推荐指数
1
解决办法
1万
查看次数

在C++中获取硬编码内存地址的内容

double address = 3068770752;
std::string hello = (char *)address;
Run Code Online (Sandbox Code Playgroud)

错误:从'double'类型无效转换为'char*'类型

所以,如果我使用类型long或int,这是有效的,但是对于double类型,这是行不通的.我怎样才能做到这一点?

谢谢!

编辑:我正在用C++编写PHP扩展,这是自定义函数"get_memory_data(双地址)"的"内容",在您使用的php中:

<?php
$a = "hello";
$b = get_memaddress($a); //0x123456
$c = hextodec($b); //3068770752
$d = get_memdata($c); //hello
Run Code Online (Sandbox Code Playgroud)

c++ memory-address

2
推荐指数
1
解决办法
595
查看次数

这是获取任何函数成员地址的新方法吗?

"会员功能"是最顽固的事情.简单地说,我无法将它们转换为*void价值观.我已经做了一些可以解决这个问题的方法; 但是,我唯一烦恼的是:我必须为每组参数类型创建一个新的定义.所以实现目标的最快方法是:

struct FOO{

    void ONE_PARAM(int){}
    void TWO_PARAM(int, int){}
    void THREE_PARAM(int, int, int){}
    void FOUR_PARAM(int, int, int, int){}
};
Run Code Online (Sandbox Code Playgroud)

首先,通过汇编调用结构函数成员:

__asm mov ecx, ADDRESS_OF_STRUCTURE
__asm push //parameters
__asm call ADDRESS_OF_MEMBER_FUNCTION
Run Code Online (Sandbox Code Playgroud)

最长的:模板......

template <class F,void (F::*Function)(int)>   //Note : Only for FOO::ONE_PARAM
void * GetFunctionAddress() {

    union ADDRESS  
    { 
        void (F::*func)(int);  
        void * function_address;  
    }address_data;  

    address_data.func = Function;  
    return address_data.function_address; 
}
Run Code Online (Sandbox Code Playgroud)

更短的方法:定义一个指向成员函数的函数指针

void *function_address;
///////////////////////////////////////////////
void(FOO::*address_ONE_PARAM)(int) = FOO::ONE_PARAM;
void(FOO::*address_TWO_PARAM)(int, int) = FOO::TWO_PARAM;
void(FOO::*address_THREE_PARAM)(int, int, int) = FOO::THREE_PARAM;
void(FOO::*address_FOUR_PARAM)(int, int, …
Run Code Online (Sandbox Code Playgroud)

c++ structure function member

2
推荐指数
1
解决办法
248
查看次数

删除magento中的客户地址

我需要以编程方式删除客户地址,但我没有找到执行此操作的功能.

 $recordedAddresses = array();
    foreach ($customer->getAddresses() as $address)
     {
        $recordedAddresses = $address->toArray();
     }
Run Code Online (Sandbox Code Playgroud)

我已经拿走了上面显示的地址集合,我只是想通过id删除它们.奇怪的是,我没有找到示例,而是使用API​​.有人可以用这个手牌吗?

magento

2
推荐指数
2
解决办法
7000
查看次数