以下内容在目标c中返回奇数结果。
#import <Foundation/Foundation.h>
#import <math.h>
#import <stdio.h>
#import <string.h>
char risk[2];
char gen1[1];
printf("Enter gender: ");
scanf("%s",gen1);
printf("Enter risk: ");
scanf("%s",risk);
我认为gen1是gen1 +风险的结果,而不仅仅是gen1。换句话说,如果gen1 =“m”且risk =“ns”,那么我得到gen1 =“mns”而不是“m”。
在之前的版本中,这工作得很好。 最近更新了OS X到7.8以及新的预览XCode。 不知道我在这里做错了什么。
全心全意,
娄
答案 0 :(得分:1)
你必须为终止NUL角色腾出空间:
char risk[3];
char gen1[2];
gen1为“mns”的可能原因是在风险之后立即在堆栈上分配,而scanf会覆盖gen1的终止NUL聊天,有效地将其与风险联系起来。