【发布时间】:2012-05-03 08:23:48
【问题描述】:
我一直在尝试编译一些我在其他地方拍摄的基本链表示例。
我遇到的问题更多的是用户类型。我想这张照片说明了一切:
所有奇怪符号的原因是什么?正常的 MinGW 输出应该类似于 error: invalid conversion from ‘void*’ to ‘element*’
这就是我遇到的问题,但我很乐意收到有关错误本身的解释。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
struct element {
int info;
struct element *next;
};
int main(void){
struct element *head, *node;
int arv;
head = NULL;
printf("Enter number! (0 to exit)");
scanf("%d",&arv);
while (arv != 0){
node = malloc(sizeof *node);
node->next = head;
node->info = arv;
head = node;
printf("Enter number! (0 to exit)");
scanf("%d",&arv);
}
}
编辑 解决了 !感谢您的信息。类似的问题:
mingw g++ gives warnings in wrong language (german instead of english)
Non-localized version of MinGW?
至于解决方案,我从“\mingw\share\locale”中删除了所有内容。不过可能不是最佳做法。
【问题讨论】:
-
malloc 返回一个 void*... 你需要强制转换它。至于编译器输出我不知道。您是否为您的架构使用了正确的编译器版本?
-
嗯,我不会说那是“乱七八糟”,我会说那是“乱码”。我已经准备好发布一个有同情心的答案,告诉你,事实上,C++ 编译器的输出通常是“混乱的”。 :-)
-
如果在该控制台窗口内发出
set命令,您能否发布输出。 -
更改为
node = (struct element*)malloc(sizeof(struct element)); -
如果回答正确且对您有帮助,请采纳。
标签: c++ c linked-list mingw