我一直收到以下代码段的以下错误。我不知道这意味着什么。有人能告诉我为什么一直这样做吗?
ConsoleApplication8.exe中0x5A0DB49C(msvcr110d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000。
#include <stdio.h>
#include <string.h>
int main ( void )
{
char str[]="asd asd 3, 5; 12, 525; 123, 45235;";
int a[100]={0};
int b[100]={0};
int i=0;
sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", a[0], b[0], a[1], b[1], a[2], b[2]);
for (i=0; i<3; i++){
printf ("%d %d\n", a[i], b[i]);
}
return 0;
}
答案 0 :(得分:3)
sscanf
sscanf(characterArray, "Conversion specifier", address of variables);
建议您在&
类型的sscanf
参数中需要int
。
sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", a[0], b[0], &a[1], &b[1], &a[2], &b[2]);
答案 1 :(得分:0)
尝试:
sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", &a[0], &b[0], &a[1], &b[1], &a[2], &b[2]);
而不是你所拥有的sscanf
电话。否则,您可能会得到一个空指针异常(int
数组值为0)。