C语言 指针到指针的算术行为不符合预期



我有下面的代码,不明白为什么它会段错误。我在这里搞砸了。我正在尝试学习如何访问/修改字符**。谢谢!

#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] = '';
    printf("%sn", *wordPtrPtr);
    return 0;
}

注意运算符优先级。在访问数组元素之前,您需要先取消引用wordPtrPtr

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

你也可以尝试这样的东西

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

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

相关内容

  • 没有找到相关文章

最新更新