Mån*_*son 2 c pointers memory-address
在汇编语言中,如果你有两个变量,地址a0和字节t0,通过输入很容易将t0存储在地址a0的最开头
sb $t0,0($a0)
Run Code Online (Sandbox Code Playgroud)
现在,我想在C中做同样的事情,在这种情况下,我有
char* a0 = "AbC";
char t0 = 'w';
Run Code Online (Sandbox Code Playgroud)
我知道我无法直接访问和修改a0 [0],因为这会导致错误的访问错误.用t0中的值替换a0中的开头"A"的最有效方法是什么?
"AbC"在read-ony内存中分配.你想要它在读/写内存中.为此,使用
char a0[] = "AbC";
Run Code Online (Sandbox Code Playgroud)
如果你可以修改的字符(你有一个指向只读字符串的指针),你现在有一个数组.
你不能替换'A'它,因为它是一个只读的字符串文字.
但是,您可以将字符串存储在一个数组中,这使得字母可以访问,然后'A'轻松替换:
char a0[] = "AbC";
char t0 = 'w';
a0[0] = t0;
Run Code Online (Sandbox Code Playgroud)