Я пишу функцию memset
и мой код ниже, у меня проблема
void* memsetFun(void* pointer, int c, int size) {
if ( pointer != NULL && size > 0 ) {
unsigned char* pChar = pointer;
int i = 0;
for ( i = 0; i < size; ++i) {
unsigned char temp = (unsigned char) c;
*pChar++ = temp; // or pChar[i] = temp (they both don't work)
}
}
return pointer;
}
Я также пробовал pChar [i] = значение, которое мы хотим и все еще не работаем. Это дает мне некоторые номера мусора, которые не имеют никакого смысла.
И я называю это:
memsetFun(address, num, size);
printf("value at %p is %d\n", address, *((int*) address));
Когда я вызываю адрес (я просто вводим адрес)
Например, если вы печатаете символы (c), он печатает как странный char, который выглядит как (для значения 4)
0 0
0 4