我试图访问C++中数组中的最后一个元素(更具体地说,我试图将整数转换为字符数组,然后访问最后一位数字)。下面是我想出迄今:访问数组的最后一个元素
int number_to_convert = 1234;
char * num_string;
sprintf(num_string, "%d", number_to_convert);
printf("Number: %d Sizeof num_string: %d Sizeof *num_string: %d Sizeof num_string[0]: %d\n", number_to_convert, sizeof(num_string), sizeof(*num_string), sizeof(num_string[0]));
使用这个信息,我尝试了几种不同的组合来访问的最后一个元素:
num_string[sizeof(number_to_convert)/sizeof(*number_to_convert)-1];
num_string[sizeof(number_to_convert)-sizeof(char)]
也许有一个更好的方式来获得最后的数字,但这是我能找到的最佳方式。我想要最后一个字符(不是空字符)。
您的意思是** num_string [的sizeof(num_string)-sizeof(焦炭)**而不是** number_to_convert [sizeof(number_to_convert)-sizeof(char)] ** – Arun
在您的示例中没有为num_string分配内存,这很危险。你还应该保留sprintf的返回,因为它给你实际写入的字符总数。此外,它是预先使用snprintf而不是sprintf – Pierre
该代码甚至编译?你正试图解引用一个int变量(number_to_convert)。 – guardianpt