gpt4 book ai didi

找不到我的语法错误,VC++ 说有一个

转载 作者:行者123 更新时间:2023-12-03 08:00:44 26 4
gpt4 key购买 nike

我在这里遇到了一些问题,我在处理机器代码和函数指针,而且我的一些代码 VC++ 只是拒绝编译。

这完全按预期编译和运行:

#include <stdlib.h>
#include <stdio.h>

int main()
{
char tarr[] = {0xb8, 222, 0, 0, 0, 0xc3};

int (*testfn)() = tarr;

printf("%d", testfn()); // prints 222

getchar();
}

但是,Visual C++ Express 不会编译以下内容,并给出以下错误: error C2143: syntax error : missing ';' before 'type'
#include <stdlib.h>
#include <stdio.h>

int main()
{
char* tarr = (char*) malloc(1000);
tarr[0] = 0xb8;
tarr[1] = 222;
tarr[2] = 0;
tarr[3] = 0;
tarr[4] = 0;
tarr[5] = 0xc3;

int (*testfn)() = tarr; // syntax error here

printf("%d", testfn());

getchar();
}

我已经查看了所谓的错误代码,但我看不出它有什么问题。这是怎么回事?有什么我想念的吗?

最佳答案

这是 C 代码吗?如果是这样,并且它不是 C99,那么您需要将 testfd 的声明移动到 tarr[X] 的赋值之前。

关于找不到我的语法错误,VC++ 说有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com