Eric Sosman wrote:
#include said:
char ALL[sizeof CMD_INIT + sizeof CMD_HOLD
+ sizeof CMD_TXT_GREEN + sizeof MSG
+ sizeof CMD_END];
char *p = ALL;
memcpy (p, CMD_INIT, sizeof CMD_INIT);
p += sizeof CMD_INIT;
memcpy (p, CMD_HOLD, sizeof CMD_HOLD);
p += sizeof CMD_HOLD;
memcpy (p, CMD_TXT_GREEN, sizeof CMD_TXT_GREEN);
p += sizeof CMD_TXT_GREEN;
memcpy (p, MSG, sizeof MSG);
p += sizeof MSG;
memcpy (p, CMD_END, sizeof CMD_END);
p += sizeof CMD_END; /* optional */
i need to add a character, this is my code:
void analyzeFilename(char *filename, int size, char *led_line)
//void analyzeFilename()
{
#ifdef DEBUG
printf("analyzeFilename\n");
#endif
printf("led_line: %s\n",led_line);
char CMD_INIT[]={'\0', '\0', '\0', '\0', '\0', '\1', 'Z', '0', '0',
'\2'};
char CMD_TEXT_FILE_TYPE[]={'A'};
char CMD_FILE_LABEL=filename[0]; //get the first character of
filename
char CMD_HOLD[]={'\142'};
char CMD_TXT_GREEN[]={'\34','\62'};
char CMD_END[]={'\04'};
char ALL[sizeof(CMD_INIT) + sizeof(CMD_TEXT_FILE_TYPE) +
sizeof(CMD_FILE_LABEL) + sizeof(CMD_HOLD) + sizeof(CMD_TXT_GREEN) +
size + sizeof(CMD_END)];
char *p=ALL;
memcpy(p,CMD_INIT, sizeof(CMD_INIT));
p += sizeof(CMD_INIT);
memcpy (p, CMD_TEXT_FILE_TYPE, sizeof(CMD_TEXT_FILE_TYPE));
p += sizeof(CMD_TEXT_FILE_TYPE);
memcpy (p, CMD_FILE_LABEL, sizeof(CMD_FILE_LABEL)); //problem here
p += sizeof(CMD_FILE_LABEL);
memcpy (p, CMD_HOLD, sizeof(CMD_HOLD));
p += sizeof(CMD_HOLD);
memcpy (p, CMD_TXT_GREEN, sizeof(CMD_TXT_GREEN));
p += sizeof(CMD_TXT_GREEN);
memcpy (p, filename, sizeof(size));
p += sizeof(size);
memcpy (p, CMD_END, sizeof(CMD_END));
p += sizeof(CMD_END);
printf("msg complet: %s", p);
....
....
}
i got a problem with:
memcpy (p, CMD_FILE_LABEL, sizeof(CMD_FILE_LABEL));
the message here:
warning: passing arg 2 of `memcpy' makes pointer from integer without a
cast
i don't know why i get this error and how to solve it