我有这个代码:
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 环境变量,则程序在第一次打印后出现段错误。如果已设置,则没有段错误,一切正常。
我有这个代码:
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 环境变量,则程序在第一次打印后出现段错误。如果已设置,则没有段错误,一切正常。
如果我不包含,我可以让你的程序出现段错误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;
}
你为什么不这样做?
const char *env = getenv("MP");
if (!env)
env = "/usr";