小编And*_*ant的帖子

初始化Malloc'ed结构

我试图使用大括号初始化一个结构,但我真的试图初始化从malloc调用返回的指针指向的结构.

typedef struct foo{
    int x;
    int y;
} foo;

foo bar = {5,6};
Run Code Online (Sandbox Code Playgroud)

我知道如何做到这一点,但我需要在这种情况下这样做.

foo * bar = malloc(sizeof(foo));
*bar = {3,4};
Run Code Online (Sandbox Code Playgroud)

c malloc structure

4
推荐指数
1
解决办法
1045
查看次数

'mov'的内存引用太多

我已经查看了有关如何解决这个问题的所有建议线程,我找不到符合我的错误的线程.

当我编译时,我得到"'mov'的"太多内存参考",即使我拿出所有这些...?

__asm__(
    "mov    0x8(%ebp),  %edx;"
    "mov    0x8(%edx),  %edx;"
    "cmp        $0x0,       %edx;"
    "je     notFound;"

    "sub        $0x10,      %esp;"
    "movl   0xc(%ebp),  (%esp);"
    "movl   $0x24,      0x8(%esp);"


    "mainloop: "
    "movl   %edx,       0x4(%esp);"
    "call _memcmp;"
    "cmp        $0xffffffff,    %eax;"
    "je     leftBranch;"

    "cmp        $0x1,       %eax;"
    "je     rightBranch;"
    "jne        found;"


    "leftBranch: "
    "mov    0xc(%edx),  %edx;"
    "cmp        $0x0,       %edx;"
    "je     notFound;"
    "jne        mainloop;"

    "rightBranch: "
    "mov    0x10(%edx), %edx;"
    "cmp        $0x0,       %edx;"
    "je     notFound;"
    "jne        mainloop;"

    "notFound: "
    "mov    $0x0,       %eax;"
    "add        $0x10,      %esp;"  
    "leave;"
    "ret;"

    "found: "
    "add        $0x10, …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly mov

0
推荐指数
1
解决办法
4808
查看次数

标签 统计

c ×2

assembly ×1

malloc ×1

mov ×1

structure ×1

x86 ×1