您好我试图设置一个指向数组第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;
答案 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