设置指向char数组的第n个地址的指针

时间:2014-10-23 16:10:45

标签: c pointers

您好我试图设置一个指向数组第n个字符的指针:

// create pointer 
char *originalPointer;

// malloc an arrary of 10 chars
originalPointer = (char *) malloc(10);

// create new pointer
char* setPtrAsNthCharOforiginalPointer;

// **** how to set it to the nth spot of ****
setPtrAsNthCharOfOriginalPointer = &originalPointer + 4;

3 个答案:

答案 0 :(得分:3)

删除地址运算符

too_long_name = originalPointer + 4 ;

答案 1 :(得分:2)

由于数组名称originalPointer本身包含array的基址,因此您不需要&运算符

too_long_name = originalPointer + 4;

并且不要输入malloc

的回报
originalPointer = malloc(10);

答案 2 :(得分:0)

要了解如何执行此操作,请考虑一个简单的示例

#include <stdio.h>

int main( void )
{
    char s[] = "Hello Paul Hawk";
    size_t i;

    for ( i = 0; s[i] != '\0'; i++ )
    {
        char *p = s + i;
        printf( "%c", *p );
    }


    return 0;
}

输出

Hello Paul Hawk