概念をテストするために小さな 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にかなり慣れていませんが、それは非常に単純な問題であり、目の前にあることを知っていますが、理解できないようです。どんな助けでも大歓迎です。