char purl[1024];
unsigned char * puMember;
unsigned char uMember;
puMember = &uMember;
unsigned char * pMember;
unsigned char Member;
pMember = &Member;
printf("member: %s\n",pMember);
printf("username :%s\n",puMember);
sprintf(purl, "Username: %s %s",puMember,pMember);
printf("URL:%s\n",purl);
printf("member: %s\n",puMember);
printf("username :%s\n",pMember);
Output
member: 12345678
username :User1
URL: username: cUser1 ser1
member: User1
username :ser1
Im confused into why sprintf is messing up my pointers once its been executed.
pMember has 12345678 and puMember has User1, im trying to format the them into a string (purl) but it seems that sprintf is messing them up :/
Any help how i could accomplish this?
Your code is very strange – if
pMemberandpuMemberpoint to single chars, whyprintfthem as a mull-terminated string? It will print anything until it finds a null in memory.Likewise,
sprintfwill keep reading memory after theMemberanduMemberchars and fill uppurl– depending on when it finds a null byte in memory.Using
snprintfinstead ofprintfwill avoid the buffer overrun, but what are you trying to accomplish exactly?