gpt4 book ai didi

c - 使用未初始化的局部变量

转载 作者:行者123 更新时间:2023-11-30 21:33:30 25 4
gpt4 key购买 nike

我的代码出现以下错误:

error C4700: uninitialized local variable 'str_day' used

我正在 Visual Studio Express 2012 中进行编译

这是我的代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void separate (char *join, char *tempmonth, int *tempday){
//function to separate month and day from a string
char *p ;
p = strtok(join," ");
strcpy(tempmonth,p); // Write the month in tempmonth
p = strtok(NULL," ");
*tempday = atoi(p); // Write the day to tempday
}

int main(){
char month[20],tempmonth[20],join[30];
char *str_day;
int day,tempday;
printf("Enter the month: ");
scanf("%s",month);
printf("Enter the day: ");
scanf("%d",&day);
strcpy(join,month);
strcat(join," "); //add the month and day seperating by space
sprintf(str_day,"%d",day); //convert day to string to concatenate with month
strcat(join,str_day);
separate(join,tempmonth,&tempday); //call to function separate
printf("Month: %s, Day: %d\n",tempmonth,tempday);

return 0;
}

谁能帮我找出问题所在吗?

最佳答案

替换

char *str_day;

char *str_day = malloc(n * sizeof(char)); 

其中 n 是您想要的字符数。 str_day 必须在某处显示(换句话说,被初始化)才能使用它。否则,使用字符数组,例如

char str_day[n]; 

其中 n 是您想要的字符数。

关于c - 使用未初始化的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com