我有这段代码:
char* env;
if (getenv("MP") == NULL)
{
env = "/usr";
}
else
{
env = getenv("MP");
}
printf("($MP is %s)\n", env);
printf("The program seg faults without printing me :(");
如果未设置$ MP环境变量,程序在第一次打印后似乎会出现故障。如果设置,则没有seg错误,一切正常。
答案 0 :(得分:3)
如果我不包含stdlib.h
即。试试这个:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* env;
if (getenv("MP") == NULL)
{
env = "/usr";
}
else
{
env = getenv("MP");
}
printf("($MP is %s)\n", env);
printf("The program seg faults without printing me :(");
return 0;
}
答案 1 :(得分:0)
你为什么不这样做?
const char *env = getenv("MP");
if (!env)
env = "/usr";