Здравствуйте. Есть массив
char mas[] = "\x02\x52\x46\x03";
требуется в конец массива дописать результат
mas[0]^mas[1]^mas[2]^mas[3]Набросал такую вот функцию:
дано
void status()
{
char mas[] = "\x02\x52\x46\x03";
checksum(&mas[0]);
}char * checksum(char * data)
{
char sum=0;
for (int i = 0; i<sizeof(data); i++)
sum ^= data[i];
printf("checksum = %02X\n",sum);
return 0;
}а в результате sum = 00 всегда получается ...
> а в результате sum = 00 всегда получается ...Надод! Кладите железо на жаровни -- мододёжи надь про перепонтение буферов... вкладывать.
>> а в результате sum = 00 всегда получается ...
> Надод! Кладите железо на жаровни -- мододёжи надь про перепонтение буферов... вкладывать.та понял уже .. мерси
while (*data){
sum ^= *data++;
}
> пере понт ение буферов%))) ...и все молчат?
>> пере понт ение буферов
> %))) ...и все молчат?а чо молчат..
функция возвращает 0 , потому что явно сказано - return 0;
а по условию , вкратце - в конец массива дописать ничего нельзя.
только динамически создавать новый и копировать.
а , ну и sizeof(data) - это размер пойнтера, а не массива