実行時にメモリアドレスが書き込み可能かどうかを確認するにはどうすればよいですか?
たとえば、次のコードで is_writable_address を実装したいとします。出来ますか?
#include <stdio.h>
int is_writable_address(void *p) {
// TODO
}
void func(char *s) {
if (is_writable_address(s)) {
*s = 'x';
}
}
int main() {
char *s1 = "foo";
char s2[] = "bar";
func(s1);
func(s2);
printf("%s, %s\n", s1, s2);
return 0;
}