自从我搞乱 C 代码以来已经有一段时间了。
在 Ubuntu 下使用 gcc 编译 C 代码时出现以下错误。
我用来编译代码的命令是(如果这些错误是由于我使用的编译器造成的,请让我知道如何消除该错误):
gcc -o runnable mycode.C
错误:从“void*”到“char**”的转换无效
第 39 行是:
sequence=malloc(sizeof(char *)*seqNum);
序列声明为:
char **sequence;
seqNum 声明为:
int seqNum
Added:sgm在评论中提供了阿龙实际问题最快的解决方案。下面的文字都是准确的,希望有帮助,但对于当前问题来说只是二流的解决方案。
您的编译器对于指针强制转换非常严格(您使用的是 C++ 编译器吗?),添加了显式强制转换,例如
sequence=(char**)malloc(sizeof(char *)*seqNum);
应该会使错误消失。或者,您也许可以说服编译器通过某种选项(例如
$(CC) --lighten-up-baby code.c
如果这是在您不想破解的某些第三方代码中,这可能会更好。阅读编译器文档以找到所需的选项。由于所有的gcc
我手头上的代码(版本 4.0 和 4.2)对该代码很满意,但我不适合提供有关关闭此行为的开关的建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)