指针到指针算术未按预期运行

Pointer-to-pointer arithmetic not behaving as expected

我有下面的代码,但不明白为什么会出现段错误。我在哪里搞砸了。我正在尝试学习如何 access/modify 一个字符 **。谢谢!

#include <stdio.h>
#include <stdlib.h>

int main() {
    char * wordPtr;
    char **wordPtrPtr = &wordPtr;
    *wordPtrPtr = (char *) malloc(3 * sizeof(char));

    *wordPtrPtr[0] = 'A';
    *wordPtrPtr[1] = 'B';
    *wordPtrPtr[2] = '[=10=]';

    printf("%s\n", *wordPtrPtr);

    return 0;
}

注意 operator precedence。在访问数组元素之前,您需要先取消引用 wordPtrPtr

(*wordPtrPtr)[0] = 'A';
(*wordPtrPtr)[1] = 'B';
(*wordPtrPtr)[2] = '[=10=]';

你也可以这样试试

 wordPtr[0] = 'A';
 wordPtr[1] = 'B';
 wordPtr[2] = '[=10=]';

或者

*(*wordPtrPtr +0) = 'A';
*(*wordPtrPtr +1) = 'B';
*(*wordPtrPtr +2) = '[=11=]';