我只是试图测试我是否正确安装了一个新的ide,并尝试编译这个基本程序,无论是在IDE中,还是使用gedit和GCC编译,但是我在命令行启动可执行文件后崩溃 - 我不知道什么是错误的,因为我对C语言中的指针还是比较新的,并且需要一段时间才能围绕这个理论进行讨论。C中带有分割错误(核心转储)错误的指针
代码:
#include <stdio.h>
#include <string.h>
char print_func(char *hi);
int main(void) {
char *hi = "Hello, World!";
print_func(*hi);
}
char print_func(char *hi) {
printf("%d \n", *hi);
}
我尝试这样做:
#include <stdio.h>
#include <string.h>
char print_func(char *hi);
int main(void) {
char *hi = "Hello, World!";
print_func(&hi);
}
char print_func(char *hi) {
printf("%d \n", *hi);
}
,并没有崩溃输出44。
宁可在'-pedantic'模式下运行GCC,或'-Wall'模式至少。代码的两个版本都被破坏:它们包含明显的错误,这些错误将被编译器检测到并伴随着诊断消息。事实上,即使在默认模式下,我也会从GCC获取此代码的诊断消息。你为什么忽略它们? – AnT 2012-07-22 14:55:06
我不太确定,我还在学习。 – TheBlueCat 2012-07-22 14:59:55
如果编译器给你一条消息试图帮助你;即使它只是一个警告它的线索,你做了一件坏事 – pm100 2013-09-03 17:39:40