Just one more quick question. Why does junk[2] remain -1 in the below code? Shouldn't junk[2] contain '3456'?
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[], char *envp[])
{
int *junk;
char *data;
int i, value;
data = (char *) malloc (15);
junk = (int *) malloc (15);
for (i = 0; i < 15; i++)
{
junk[i] = -1;
}
strcpy(data, "09+234.88\r\n A151 L+3000 C3456\r\n");
value = sscanf(data, "%*[^ ] A%i L+%i C%i\r\n", &junk[0], &junk[1], &junk[2]);
for (i = 0; i < 5; i++)
{
printf("\njunk[%i]: %i", i, junk[i]);
}
printf("\nvalue: %i\n\n", value);
free (data);
// free (junk); SIGSEV :(
return (0); /* always return success */
} /* end main(...) */
My output is:
junk[0]: 151
junk[1]: 3000
junk[2]: -1
junk[3]: -1
junk[4]: -1
value: 2