【发布时间】:2016-05-10 08:46:02
【问题描述】:
这里的总 C 菜鸟。我知道我的 sprintf_wrapper 方法有问题,因为在我介绍它之前,一切正常。该函数的要点是获取一个字符串缓冲区和一个数字,并将字符串缓冲区值更改为“WHALE=[num]”。然后我将这个新字符串与putenv 方法一起使用。
代码导致“Segmentation fault (core dumped)”,我相信是在调用sprintf_wrapper之后发生的。
主要方法
int main(void) {
getP0Info();
putenv("WHALE=7");
forkProcesses();
int whale = atoi(getenv("WHALE"));
char new_env[50];
sleep(1);
printf("P0: %d\n", whale);
whale = whale - 1;
sprintf_wrapper(new_env, whale);
putenv(new_env);
return 0;
}
sprintf_wrapper
void sprintf_wrapper(char* str, int num) {
char buffer[10];
str = "WHALE=";
sprintf(buffer,"%d", num);
strcat(str,buffer);
}
【问题讨论】:
标签: c segmentation-fault printf