[Solved] pointers not read correctly


i intentionally left the previous answer because understanding memory allocation is trivial in programming in c specially. and as i see you have a big issue with that.

but still you have issue in nearly every thing. in my actual answer, i will try to simplify you how to use strtok, to split string and parse it. i guess this is the second main problem with your code.

the code :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void){
    char commandArray[][256]={
        "if=q.txt",
        "of=output.txt"
    };

    char infile[256], outfile[256];

    for(int i=0; i<2;i++){

        char *ptr,*cmd;

        cmd=commandArray[i];
        ptr=NULL;

        printf("parsing command '%s'\n",cmd);

        cmd=strtok(cmd,"=");
        ptr=strtok(NULL,"=");

        if(!cmd){
            printf("Error parsing the string '%s'\n",commandArray[i]);
            exit(1);
        }

        if (strcmp(cmd,"if")==0){
            strcpy(infile,ptr);
        }
        else if (strcmp(cmd,"of")==0){
            strcpy(outfile,ptr);
        }
        else{
            printf("unknow token '%s'\n",cmd);
            exit(1);
        }
    }


    printf(
        "\n\n"
        "input file: '%s'\n"
        "output file: '%s'\n"
        "\n\n",
        infile,outfile);

    return 0;
 }

1

solved pointers not read correctly