我试图使用大括号初始化一个结构,但我真的试图初始化从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) 我已经查看了有关如何解决这个问题的所有建议线程,我找不到符合我的错误的线程.
当我编译时,我得到"'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)