我正在编写一个小型 C 程序来测试一个概念,但我遇到了一些问题。首先,这是我的所有代码:
#include <stdio.h>
#include <string.h>
char one[] = "Figure A 200 200 =\0";
char two[] = "Figure B 300 200 =\0";
int main(void)
{
char buffero[300];
char buffert[300];
memset(buffero, 0, sizeof(buffero));
memset(buffert, 0, sizeof(buffert));
int * doubleo = 0;
int * doublet = 0;
sscanf(one, "%s %s %d %d ",buffero, buffert, doubleo, doublet);
printf("%s %s %d %d", buffero, buffert, *doubleo, *doublet);
memset(buffero, 0, sizeof(buffero));
memset(buffert, 0, sizeof(buffert));
sscanf(two, "%s %s %d %d ", buffero, buffert, doubleo, doublet);
printf("%s %s %d %d", buffero, buffert, *doubleo, *doublet);
};
它与我尝试实施的一些修复程序有些复杂,但并不是那么可怕。
它编译,但是当我运行它时,我得到一个分段错误。
GDB 报告:
#3 0x0000000000400683 in main () at mis_test.c:15
15 sscanf(one, "%s %s %d %d ",buffero, buffert, doubleo, doublet);
有人可以在这里提供一些见解吗?我对 C 相当陌生,我知道这是一个非常非常简单的问题,正盯着我看,但我似乎无法理解。任何帮助表示赞赏。